From 058c8296b1d76576cce5252c7627bec08adb18ab Mon Sep 17 00:00:00 2001
From: Hamid Reza Mohammadi
Date: Thu, 3 Mar 2022 16:45:45 +0330
Subject: [PATCH] docs: #285 create and edit FAQ items
---
.../Areas/User/Pages/FAQItemEdit.cshtml.cs | 22 ++++++++++++++++
GanjooRazor/Areas/User/Pages/FAQItems.cshtml | 15 +++++++++--
.../Areas/User/Pages/FAQItems.cshtml.cs | 26 ++++++++++++++++++-
3 files changed, 60 insertions(+), 3 deletions(-)
diff --git a/GanjooRazor/Areas/User/Pages/FAQItemEdit.cshtml.cs b/GanjooRazor/Areas/User/Pages/FAQItemEdit.cshtml.cs
index fc89e31c..22ba2e3f 100644
--- a/GanjooRazor/Areas/User/Pages/FAQItemEdit.cshtml.cs
+++ b/GanjooRazor/Areas/User/Pages/FAQItemEdit.cshtml.cs
@@ -5,6 +5,7 @@ using Newtonsoft.Json;
using RMuseum.Models.Auth.Memory;
using RMuseum.Models.FAQ;
using System.Net.Http;
+using System.Text;
using System.Threading.Tasks;
namespace GanjooRazor.Areas.User.Pages
@@ -62,5 +63,26 @@ namespace GanjooRazor.Areas.User.Pages
return Page();
}
+ public async Task OnPostAsync()
+ {
+ using (HttpClient secureClient = new HttpClient())
+ {
+ await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response);
+ HttpResponseMessage response =
+ Question.Id == 0 ?
+ await secureClient.PostAsync($"{APIRoot.Url}/api/faq", new StringContent(JsonConvert.SerializeObject(Question), Encoding.UTF8, "application/json"))
+ :
+ await secureClient.PutAsync($"{APIRoot.Url}/api/faq", new StringContent(JsonConvert.SerializeObject(Question), Encoding.UTF8, "application/json"))
+ ;
+ if (!response.IsSuccessStatusCode)
+ {
+ LastMessage = JsonConvert.DeserializeObject(await response.Content.ReadAsStringAsync());
+ return Page();
+ }
+
+ return Redirect($"/User/FAQItems?catId={Question.CategoryId}");
+ }
+ }
+
}
}
diff --git a/GanjooRazor/Areas/User/Pages/FAQItems.cshtml b/GanjooRazor/Areas/User/Pages/FAQItems.cshtml
index afc8151a..65d621c7 100644
--- a/GanjooRazor/Areas/User/Pages/FAQItems.cshtml
+++ b/GanjooRazor/Areas/User/Pages/FAQItems.cshtml
@@ -69,7 +69,7 @@ else
success: function (items) {
var s = '';
for(var i=0; i' + '' + items[i].question + '
');
+ s += ('' + '' + items[i].question + '
');
}
document.getElementById('catItems').innerHTML = s;
},
@@ -84,7 +84,14 @@ else
@@ -103,6 +110,10 @@ else
پرسش جدید
diff --git a/GanjooRazor/Areas/User/Pages/FAQItems.cshtml.cs b/GanjooRazor/Areas/User/Pages/FAQItems.cshtml.cs
index beec7fe0..ce1b46bf 100644
--- a/GanjooRazor/Areas/User/Pages/FAQItems.cshtml.cs
+++ b/GanjooRazor/Areas/User/Pages/FAQItems.cshtml.cs
@@ -17,6 +17,10 @@ namespace GanjooRazor.Areas.User.Pages
public FAQCategory[] Categories { get; set; }
+ public FAQItem[] CategoryItems { get; set; }
+
+ public int CatId { get; set; }
+
public async Task OnGetAsync()
{
if(string.IsNullOrEmpty(Request.Cookies["Token"]))
@@ -30,6 +34,8 @@ namespace GanjooRazor.Areas.User.Pages
return Page();
}
+ CatId = 0;
+
using (HttpClient secureClient = new HttpClient())
{
if (await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response))
@@ -43,6 +49,24 @@ namespace GanjooRazor.Areas.User.Pages
Categories = JsonConvert.DeserializeObject(await response.Content.ReadAsStringAsync());
+ if(Categories.Length > 0)
+ {
+ CatId = string.IsNullOrEmpty(Request.Query["catId"]) ? Categories[0].Id : int.Parse(Request.Query["catId"]);
+ response = await secureClient.GetAsync($"{APIRoot.Url}/api/faq/cat/items?catId={CatId}");
+ if (!response.IsSuccessStatusCode)
+ {
+ return new BadRequestObjectResult(JsonConvert.DeserializeObject(await response.Content.ReadAsStringAsync()));
+ }
+
+ var items = JsonConvert.DeserializeObject(await response.Content.ReadAsStringAsync());
+ if (items == null)
+ {
+ items = new FAQItem[] { };
+ }
+
+ CategoryItems = items;
+ }
+
}
else
{
@@ -80,7 +104,7 @@ namespace GanjooRazor.Areas.User.Pages
{
if (await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response))
{
- HttpResponseMessage response = await secureClient.GetAsync($"{APIRoot.Url}/api/faq/cat/secure/items?catId={id}");
+ HttpResponseMessage response = await secureClient.GetAsync($"{APIRoot.Url}/api/faq/cat/items?catId={id}");
if (!response.IsSuccessStatusCode)
{
return new BadRequestObjectResult(JsonConvert.DeserializeObject(await response.Content.ReadAsStringAsync()));