From c6916743a373e1d2d227ba05a91f73c94730cb6e Mon Sep 17 00:00:00 2001 From: Hamid Reza Mohammadi Date: Sun, 23 Mar 2025 10:08:48 +0330 Subject: [PATCH] #467 ReviewCatEdits --- .../Areas/Admin/Pages/ReviewCatEdits.cshtml | 118 ++++++++++++++++++ .../Admin/Pages/ReviewCatEdits.cshtml.cs | 93 ++++++++++++++ GanjooRazor/Pages/Shared/_AdminLayout.cshtml | 7 ++ 3 files changed, 218 insertions(+) create mode 100644 GanjooRazor/Areas/Admin/Pages/ReviewCatEdits.cshtml create mode 100644 GanjooRazor/Areas/Admin/Pages/ReviewCatEdits.cshtml.cs diff --git a/GanjooRazor/Areas/Admin/Pages/ReviewCatEdits.cshtml b/GanjooRazor/Areas/Admin/Pages/ReviewCatEdits.cshtml new file mode 100644 index 00000000..bc520479 --- /dev/null +++ b/GanjooRazor/Areas/Admin/Pages/ReviewCatEdits.cshtml @@ -0,0 +1,118 @@ +@page +@using DNTPersianUtils.Core +@model GanjooRazor.Areas.Admin.Pages.ReviewCatEditsModel +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers +@{ + Layout = "_AdminLayout"; + ViewData["Title"] = "ویرایش‌های بخش‌ها"; +} + +@if (!string.IsNullOrEmpty(Model.FatalError)) +{ +

@Model.FatalError

+ return; +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @if (!string.IsNullOrEmpty(Model.Correction.Note)) + { + + + + + } + + + + + + + + + + + +
+ پیشنهاد دهنده: + + @Model.Correction.UserNickname +
+ بررسی + +
+ +
+
+ زمان: + + @Model.Correction.Date.ToFriendlyPersianDateTextify() +
+ تعداد کل: + + @Model.TotalCount +
+ درست نیست +
+ تغییرات متن +
+

@Model.Correction.OriginalDescription

+
+

@Model.Correction.Description

+
+

@Model.Correction.OriginalDescription

+ +

 

یادداشت: + @Model.Correction.Note +
یادداشت بررسی:
diff --git a/GanjooRazor/Areas/Admin/Pages/ReviewCatEdits.cshtml.cs b/GanjooRazor/Areas/Admin/Pages/ReviewCatEdits.cshtml.cs new file mode 100644 index 00000000..47ea9a20 --- /dev/null +++ b/GanjooRazor/Areas/Admin/Pages/ReviewCatEdits.cshtml.cs @@ -0,0 +1,93 @@ +using GanjooRazor.Utils; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Newtonsoft.Json.Linq; +using Newtonsoft.Json; +using RMuseum.Models.Ganjoor.ViewModels; +using RSecurityBackend.Models.Generic; +using System.Net.Http; +using System.Threading.Tasks; +using System.Linq; + +namespace GanjooRazor.Areas.Admin.Pages +{ + [IgnoreAntiforgeryToken(Order = 1001)] + public class ReviewCatEditsModel : PageModel + { + /// + /// correction + /// + public GanjoorCatCorrectionViewModel Correction { get; set; } + /// + /// fatal error + /// + public string FatalError { get; set; } + + /// + /// skip + /// + public int Skip { get; set; } + + /// + /// total count + /// + public int TotalCount { get; set; } + + /// + /// page + /// + public GanjoorPageCompleteViewModel PageInformation { get; set; } + public async Task OnGetAsync() + { + if (string.IsNullOrEmpty(Request.Cookies["Token"])) + return Redirect("/"); + + FatalError = ""; + TotalCount = 0; + Skip = string.IsNullOrEmpty(Request.Query["skip"]) ? 0 : int.Parse(Request.Query["skip"]); + using (HttpClient secureClient = new HttpClient()) + { + if (await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response)) + { + var nextResponse = await secureClient.GetAsync($"{APIRoot.Url}/api/ganjoor/cat/correction/next?skip={Skip}"); + if (!nextResponse.IsSuccessStatusCode) + { + FatalError = JsonConvert.DeserializeObject(await nextResponse.Content.ReadAsStringAsync()); + return Page(); + } + + string paginnationMetadata = nextResponse.Headers.GetValues("paging-headers").FirstOrDefault(); + if (!string.IsNullOrEmpty(paginnationMetadata)) + { + TotalCount = JsonConvert.DeserializeObject(paginnationMetadata).totalCount; + } + Correction = JsonConvert.DeserializeObject(await nextResponse.Content.ReadAsStringAsync()); + if (Correction != null) + { + var catQuery = await secureClient.GetAsync($"{APIRoot.Url}/api/ganjoor/cat/{Correction.CatId}"); + if (!catQuery.IsSuccessStatusCode) + { + FatalError = JsonConvert.DeserializeObject(await catQuery.Content.ReadAsStringAsync()); + return Page(); + } + var cat = JsonConvert.DeserializeObject(await catQuery.Content.ReadAsStringAsync()); + var pageQuery = await secureClient.GetAsync($"{APIRoot.Url}/api/ganjoor/page?url={cat.Cat.FullUrl}"); + if (!pageQuery.IsSuccessStatusCode) + { + FatalError = JsonConvert.DeserializeObject(await pageQuery.Content.ReadAsStringAsync()); + return Page(); + } + PageInformation = JObject.Parse(await pageQuery.Content.ReadAsStringAsync()).ToObject(); + + } + + } + else + { + FatalError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید."; + } + } + return Page(); + } + } +} diff --git a/GanjooRazor/Pages/Shared/_AdminLayout.cshtml b/GanjooRazor/Pages/Shared/_AdminLayout.cshtml index 9c53818d..0b1a406f 100644 --- a/GanjooRazor/Pages/Shared/_AdminLayout.cshtml +++ b/GanjooRazor/Pages/Shared/_AdminLayout.cshtml @@ -445,6 +445,13 @@ +