#217 displaying couplet numbers in UI

This commit is contained in:
Hamid Reza Mohammadi 2021-10-04 13:34:31 +03:30
parent 7d19980fe0
commit 5327bc7328
5 changed files with 31 additions and 4 deletions

View File

@ -646,9 +646,12 @@ namespace GanjooRazor.Pages
{
var responseCoupletComments = await _httpClient.GetAsync($"{APIRoot.Url}/api/ganjoor/poem/{poemId}/comments?coupletIndex={coupletIndex}");
responseCoupletComments.EnsureSuccessStatusCode();
var comments = JArray.Parse(await responseCoupletComments.Content.ReadAsStringAsync()).ToObject<List<GanjoorCommentSummaryViewModel>>();
var responseCoupletNumbers = await _httpClient.GetAsync($"{APIRoot.Url}/api/numberings/couplet/{poemId}/{coupletIndex}");
responseCoupletNumbers.EnsureSuccessStatusCode();
var numbers = JArray.Parse(await responseCoupletNumbers.Content.ReadAsStringAsync()).ToObject<List<GanjoorCoupletNumberViewModel>>();
bool isBookmarked = false;
if (!string.IsNullOrEmpty(Request.Cookies["UserId"]))
@ -686,7 +689,8 @@ namespace GanjooRazor.Pages
CoupletIndex = coupletIndex,
LoggedIn = !string.IsNullOrEmpty(Request.Cookies["Token"]),
Comments = comments,
IsBookmarked = isBookmarked
IsBookmarked = isBookmarked,
Numbers = numbers
}
}
};

View File

@ -1,7 +1,25 @@
@model GanjooRazor.Pages._BNumPartialModel
@using DNTPersianUtils.Core
@{
Layout = null;
}
<table style="width:100%; margin-bottom:10px;">
<tr>
<td>شماره:</td>
<td>
@((Model.CoupletIndex + 1).ToPersianNumbers())
</td>
</tr>
@foreach (var number in Model.Numbers)
{
<tr>
<td>شماره در @number.NumberingName:</td>
<td>@number.CoupletNumber.ToPersianNumbers() از @number.TotalCouplets.ToPersianNumbers()</td>
</tr>
}
</table>
<div id="play-block-@Model.CoupletIndex" style="width: 100%;">
<select id="narrators-@Model.CoupletIndex" style="width:49%;float:right"></select>
<a role="button" id="listen-@Model.CoupletIndex" style="cursor: pointer; width: 49%; color: white; background-color: green; display: block; text-align: center; border-color: #300; padding:1px; float:left; margin-top:3px; " onclick="playCouplet(@Model.CoupletIndex)">از اینجا بخواند</a>

View File

@ -48,6 +48,11 @@ namespace GanjooRazor.Pages
}
}
/// <summary>
/// numbers
/// </summary>
public List<GanjoorCoupletNumberViewModel> Numbers { get; set; }
/// <summary>
/// comments
/// </summary>

View File

@ -89,7 +89,7 @@ namespace RMuseum.Controllers
/// <param name="poemId"></param>
/// <param name="coupletIndex"></param>
/// <returns></returns>
[HttpGet("couplet/{poemId}/{coupletId}")]
[HttpGet("couplet/{poemId}/{coupletIndex}")]
[AllowAnonymous]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(GanjoorCoupletNumberViewModel[]))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]

View File

@ -275,7 +275,7 @@ namespace RMuseum.Services.Implementation
{
totalVerseCount += await context.GanjoorVerses.Where(v => v.PoemId == poem.Id).CountAsync();
var verses = await context.GanjoorVerses.AsNoTracking()
.Where(v => v.PoemId == poem.Id && (v.VersePosition == VersePosition.Right || v.VersePosition == VersePosition.CenteredVerse1))
.Where(v => v.PoemId == poem.Id && v.VersePosition != VersePosition.Left)
.OrderBy(v => v.VOrder)
.ToListAsync();
for (int coupletIndex = 0; coupletIndex < verses.Count; coupletIndex++)