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 پرسش جدید

+ @foreach(var item in Model.CategoryItems) + { +

@item.Question

+ }
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()));