using System.Net.Http; using System.Threading.Tasks; using DivanRazor.Utils; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using RMuseum.Models.Divan.ViewModels; namespace DivanRazor.Areas.Admin.Pages { public class PageDelModel : PageModel { /// /// HttpClient instance /// private readonly HttpClient _httpClient; /// /// constructor /// /// public PageDelModel(HttpClient httpClient) { _httpClient = httpClient; } /// /// page /// public DivanPageCompleteViewModel PageInformation { get; set; } /// /// last result /// public string LastResult { get; set; } public async Task OnGetAsync() { if (string.IsNullOrEmpty(Request.Cookies["Token"])) return Redirect("/"); LastResult = ""; var response = await _httpClient.GetAsync($"{APIRoot.Url}/api/divan/page?url={Request.Query["url"]}"); if (!response.IsSuccessStatusCode) { LastResult = JsonConvert.DeserializeObject(await response.Content.ReadAsStringAsync()); return Page(); } PageInformation = JObject.Parse(await response.Content.ReadAsStringAsync()).ToObject(); return Page(); } public async Task OnPostAsync() { LastResult = ""; using (HttpClient secureClient = new HttpClient(new DivanReloginHandler(Request, Response))) { await DivanSessionChecker.PrepareClient(secureClient, Request, Response); HttpResponseMessage response = await secureClient.DeleteAsync($"{APIRoot.Url}/api/divan/page/cache/{Request.Query["id"]}"); if (!response.IsSuccessStatusCode) { LastResult = JsonConvert.DeserializeObject(await response.Content.ReadAsStringAsync()); return Page(); } response = await secureClient.DeleteAsync($"{APIRoot.Url}/api/divan/page/{Request.Query["id"]}"); if(!response.IsSuccessStatusCode) { LastResult = JsonConvert.DeserializeObject(await response.Content.ReadAsStringAsync()); } else { LastResult = "عملیات حذف صفحه انجام شد."; } return Page(); } } } }