diff --git a/GanjooRazor/Areas/Admin/Pages/ModifyPage.cshtml b/GanjooRazor/Areas/Admin/Pages/ModifyPage.cshtml
index 329c9931..018e36b6 100644
--- a/GanjooRazor/Areas/Admin/Pages/ModifyPage.cshtml
+++ b/GanjooRazor/Areas/Admin/Pages/ModifyPage.cshtml
@@ -8,7 +8,7 @@
@ViewData["Title"]
-@Model.LastMessage
+@Html.Raw(Model.LastMessage)
+
+
diff --git a/GanjooRazor/Areas/Admin/Pages/ModifyPage.cshtml.cs b/GanjooRazor/Areas/Admin/Pages/ModifyPage.cshtml.cs
index 1609d209..43463e42 100644
--- a/GanjooRazor/Areas/Admin/Pages/ModifyPage.cshtml.cs
+++ b/GanjooRazor/Areas/Admin/Pages/ModifyPage.cshtml.cs
@@ -49,18 +49,19 @@ namespace GanjooRazor.Areas.Admin.Pages
///
public GanjoorPageCompleteViewModel PageInformation { get; set; }
+ ///
+ /// ganjoor toc
+ ///
+ [BindProperty]
+ public GanjoorTOC GanjoorTOC { get; set; }
///
/// last message
///
public string LastMessage { get; set; }
- public async Task OnGetAsync()
+ private async Task PreparePage()
{
- LastMessage = Request.Query["edit"] == "true" ? "ویرایش انجام شد." : "";
- if (string.IsNullOrEmpty(Request.Query["id"]))
- {
- return StatusCode(StatusCodes.Status500InternalServerError, "شناسهٔ صفحه مشخص نیست.");
- }
+
var rhythmResponse = await _httpClient.GetAsync($"{APIRoot.Url}/api/ganjoor/rhythms");
rhythmResponse.EnsureSuccessStatusCode();
@@ -70,20 +71,13 @@ namespace GanjooRazor.Areas.Admin.Pages
var pageUrlResponse = await _httpClient.GetAsync($"{APIRoot.Url}/api/ganjoor/pageurl?id={Request.Query["id"]}");
- if (!pageUrlResponse.IsSuccessStatusCode)
- {
- return StatusCode(StatusCodes.Status500InternalServerError, await pageUrlResponse.Content.ReadAsStringAsync());
- }
-
pageUrlResponse.EnsureSuccessStatusCode();
var pageUrl = JsonConvert.DeserializeObject(await pageUrlResponse.Content.ReadAsStringAsync());
var pageQuery = await _httpClient.GetAsync($"{APIRoot.Url}/api/ganjoor/page?url={pageUrl}");
- if (!pageQuery.IsSuccessStatusCode)
- {
- return StatusCode(StatusCodes.Status500InternalServerError, await pageQuery.Content.ReadAsStringAsync());
- }
+ pageQuery.EnsureSuccessStatusCode();
+
PageInformation = JObject.Parse(await pageQuery.Content.ReadAsStringAsync()).ToObject();
ModifyModel = new GanjoorModifyPageViewModel()
@@ -99,11 +93,21 @@ namespace GanjooRazor.Areas.Admin.Pages
RhymeLetters = PageInformation.Poem == null ? null : PageInformation.Poem.RhymeLetters,
Rhythm = PageInformation.Poem == null ? null : PageInformation.Poem.GanjoorMetre == null ? null : PageInformation.Poem.GanjoorMetre.Rhythm
};
+ }
+ public async Task OnGetAsync()
+ {
+ LastMessage = Request.Query["edit"] == "true" ? "ویرایش انجام شد." : "";
+ if (string.IsNullOrEmpty(Request.Query["id"]))
+ {
+ return StatusCode(StatusCodes.Status500InternalServerError, "شناسهٔ صفحه مشخص نیست.");
+ }
+ GanjoorTOC = GanjoorTOC.Analyse;
+ await PreparePage();
return Page();
}
- public async Task OnPostAsync()
+ public async Task OnPostAsync(GanjoorModifyPageViewModel ModifyModel)
{
using (HttpClient secureClient = new HttpClient())
{
@@ -117,12 +121,39 @@ namespace GanjooRazor.Areas.Admin.Pages
{
LastMessage = "لطفا از گنجور خارج و مجددا به آن وارد شوید.";
}
-
}
-
-
return Page();
+ }
+ public async Task OnPostGenerateCatPageAsync(GanjoorTOC GanjoorTOC)
+ {
+ await PreparePage();
+
+ var response = await _httpClient.GetAsync($"{APIRoot.Url}/api/ganjoor/cat?url={PageInformation.FullUrl}&poems=true");
+
+ response.EnsureSuccessStatusCode();
+
+ var Cat = JsonConvert.DeserializeObject(await response.Content.ReadAsStringAsync());
+
+ using (HttpClient secureClient = new HttpClient())
+ {
+ if (await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response))
+ {
+ var htmlRes = await secureClient.GetAsync($"{APIRoot.Url}/api/ganjoor/cat/toc/{Cat.Cat.Id}/{(int)GanjoorTOC}");
+ htmlRes.EnsureSuccessStatusCode();
+
+ ModifyModel.HtmlText = await htmlRes.Content.ReadAsStringAsync();
+
+ LastMessage = $"متن تولیدی دریافت شد. لطفا آن را کپی کنید و سپس اینجا کلیک کنید و آن را درج نمایید.";
+
+
+ }
+ else
+ {
+ LastMessage = "لطفا از گنجور خارج و مجددا به آن وارد شوید.";
+ }
+ }
+ return Page();
}
}
}
diff --git a/RMuseum/Controllers/GanjoorController.cs b/RMuseum/Controllers/GanjoorController.cs
index 8b3319ad..5bccde79 100644
--- a/RMuseum/Controllers/GanjoorController.cs
+++ b/RMuseum/Controllers/GanjoorController.cs
@@ -476,6 +476,7 @@ namespace RMuseum.Controllers
///
[HttpGet]
[Route("cat/toc/{id}/{options}")]
+ [Produces("text/plain")]
[Authorize(Policy = RMuseumSecurableItem.GanjoorEntityShortName + ":" + SecurableItem.ModifyOperationShortName)]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(string))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]