From b45c154fbd164952a93f52ffbb55f4dcc91d766c Mon Sep 17 00:00:00 2001 From: Hamid Reza Mohammadi Date: Fri, 21 Mar 2025 10:35:00 +0330 Subject: [PATCH] improving tagging with digital sources --- GanjooRazor/Areas/Admin/Pages/CatUtils.cshtml | 15 +++++-- .../Areas/Admin/Pages/CatUtils.cshtml.cs | 40 +++++++++++++++---- 2 files changed, 44 insertions(+), 11 deletions(-) diff --git a/GanjooRazor/Areas/Admin/Pages/CatUtils.cshtml b/GanjooRazor/Areas/Admin/Pages/CatUtils.cshtml index 83fe4b97..4f4ecf6e 100644 --- a/GanjooRazor/Areas/Admin/Pages/CatUtils.cshtml +++ b/GanjooRazor/Areas/Admin/Pages/CatUtils.cshtml @@ -252,6 +252,7 @@ function tagPoemsWithDigitalTag(catId) { var tag = document.getElementById('digital-source-url-slug').value; + var name = document.getElementById('digital-source-name').value; if (!confirm('آیا از برچسب‌گذاری اشعار این بخش با منبع دیجیتال با نشانی '+tag+' اطمینان دارید؟')) return; @@ -261,7 +262,8 @@ url: url, data: { id: catId, - tag: tag + tag: tag, + name: name }, error: function (e) { if (e.responseText == null) @@ -776,11 +778,18 @@ + + + + diff --git a/GanjooRazor/Areas/Admin/Pages/CatUtils.cshtml.cs b/GanjooRazor/Areas/Admin/Pages/CatUtils.cshtml.cs index ecf13d2d..b72930a5 100644 --- a/GanjooRazor/Areas/Admin/Pages/CatUtils.cshtml.cs +++ b/GanjooRazor/Areas/Admin/Pages/CatUtils.cshtml.cs @@ -1,8 +1,4 @@ -using System.IO; -using System.Net.Http; -using System.Text; -using System.Threading.Tasks; -using GanjooRazor.Utils; +using GanjooRazor.Utils; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; @@ -11,6 +7,10 @@ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using RMuseum.Models.Ganjoor; using RMuseum.Models.Ganjoor.ViewModels; +using System.IO; +using System.Net.Http; +using System.Text; +using System.Threading.Tasks; namespace GanjooRazor.Areas.Admin.Pages { @@ -562,18 +562,42 @@ namespace GanjooRazor.Areas.Admin.Pages } } - public async Task OnPostSetCategoryDigitalSourceTagAsync(int id, string tag) + public async Task OnPostSetCategoryDigitalSourceTagAsync(int id, string tag, string name) { using (HttpClient secureClient = new HttpClient()) { if (await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response)) { - HttpResponseMessage response = await secureClient.PutAsync($"{APIRoot.Url}/api/ganjoor/source/{id}/{tag}", null); - if (!response.IsSuccessStatusCode) + HttpResponseMessage response = await secureClient.GetAsync($"{APIRoot.Url}/api/ganjoor/source?sourceUrlSlug={tag}"); + if(!response.IsSuccessStatusCode) { var res = JsonConvert.DeserializeObject(await response.Content.ReadAsStringAsync()); return new BadRequestObjectResult(res); } + DigitalSource source = JsonConvert.DeserializeObject(await response.Content.ReadAsStringAsync()); + if (source == null) + { + if(string.IsNullOrEmpty(name)) + { + return new BadRequestObjectResult("منبع وجود ندارد. باید نام آن را وارد کنید."); + } + source = new DigitalSource() + { + UrlSlug = tag, + ShortName = name, + FullName = name, + SourceType = "همراهان گنجور" + }; + } + + HttpResponseMessage responsePost = await secureClient.PutAsync($"{APIRoot.Url}/api/ganjoor/source/{id}", + new StringContent(JsonConvert.SerializeObject(source), Encoding.UTF8, "application/json") + ); + if (!responsePost.IsSuccessStatusCode) + { + var res = JsonConvert.DeserializeObject(await responsePost.Content.ReadAsStringAsync()); + return new BadRequestObjectResult(res); + } return new OkObjectResult(true); } }
- منبع دیجیتال بخش + اسلاگ منبع دیجیتال بخش - +
+ نام منبع دیجیتال بخش (فقط برای منبع جدید) + +