using System; using System.Net.Http; using System.Text; using System.Threading.Tasks; using GanjooRazor.Utils; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using Newtonsoft.Json; using RSecurityBackend.Models.Auth.ViewModels; namespace GanjooRazor.Areas.Admin.Pages { public class KickoutUserModel : PageModel { public PublicRAppUser UserInfo { get; set; } /// /// Last Error /// public string LastResult { get; set; } [BindProperty] public UserCauseViewModel UserCauseViewModel { get; set; } public async Task OnGetAsync() { if (string.IsNullOrEmpty(Request.Cookies["Token"])) return Redirect("/"); using (HttpClient secureClient = new HttpClient(new GanjoorReloginHandler(Request, Response))) { if (await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response)) { var userInfoResponse = await secureClient.GetAsync($"{APIRoot.Url}/api/users/{Request.Query["id"]}"); if (userInfoResponse.IsSuccessStatusCode) { UserInfo = JsonConvert.DeserializeObject(await userInfoResponse.Content.ReadAsStringAsync()); UserCauseViewModel = new UserCauseViewModel() { UserId = (Guid)UserInfo.Id, Cause = "نقض قوانین حاشیه‌گذاری" }; } else { LastResult = JsonConvert.DeserializeObject(await userInfoResponse.Content.ReadAsStringAsync()); } } else { LastResult = "لطفاً از گنجور خارج و مجددا به آن وارد شوید."; } } return Page(); } public async Task OnPostAsync() { LastResult = ""; using (HttpClient secureClient = new HttpClient(new GanjoorReloginHandler(Request, Response))) { await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response); HttpResponseMessage response = await secureClient.PostAsync($"{APIRoot.Url}/api/users/kickout", new StringContent(JsonConvert.SerializeObject(UserCauseViewModel), Encoding.UTF8, "application/json")); if(response.IsSuccessStatusCode) { LastResult = "کاربر حذف شد."; } else { LastResult = JsonConvert.DeserializeObject(await response.Content.ReadAsStringAsync()); } return Page(); } } } }