#445 fixes
This commit is contained in:
parent
0299376e18
commit
b1ffe5b9bc
@ -4130,6 +4130,18 @@
|
||||
<member name="M:RMuseum.Migrations.NewTajikFields.BuildTargetModel(Microsoft.EntityFrameworkCore.ModelBuilder)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:RMuseum.Migrations.NewTajikEntities">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:RMuseum.Migrations.NewTajikEntities.Up(Microsoft.EntityFrameworkCore.Migrations.MigrationBuilder)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:RMuseum.Migrations.NewTajikEntities.Down(Microsoft.EntityFrameworkCore.Migrations.MigrationBuilder)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:RMuseum.Migrations.NewTajikEntities.BuildTargetModel(Microsoft.EntityFrameworkCore.ModelBuilder)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:RMuseum.Models.Accounting.DonationExpenditure">
|
||||
<summary>
|
||||
donation expenditures
|
||||
@ -19282,6 +19294,20 @@
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.GanjoorService.GetTajikPoetsAsync">
|
||||
<summary>
|
||||
tajik poets
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.GanjoorService.GetTajikPageByUrlAsync(System.String,System.Boolean)">
|
||||
<summary>
|
||||
tajik page by url
|
||||
</summary>
|
||||
<param name="url"></param>
|
||||
<param name="catPoems"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.GanjoorService.StartRegeneratingTOCs(System.Guid)">
|
||||
<summary>
|
||||
regenerate TOCs
|
||||
@ -19302,20 +19328,6 @@
|
||||
transilerate verse data from Persian to Tajiki
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.GanjoorService.GetTajikPoetsAsync">
|
||||
<summary>
|
||||
tajik poets
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.GanjoorService.GetTajikPageByUrlAsync(System.String,System.Boolean)">
|
||||
<summary>
|
||||
tajik page by url
|
||||
</summary>
|
||||
<param name="url"></param>
|
||||
<param name="catPoems"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.GanjoorService.GetPoets(System.Boolean,System.Boolean)">
|
||||
<summary>
|
||||
Get List of poets
|
||||
|
||||
@ -0,0 +1,160 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System;
|
||||
using RMuseum.Models.Ganjoor;
|
||||
using System.Threading.Tasks;
|
||||
using RSecurityBackend.Models.Generic;
|
||||
using RMuseum.Models.Ganjoor.ViewModels;
|
||||
using System.Linq;
|
||||
using Org.BouncyCastle.Asn1.Ocsp;
|
||||
|
||||
namespace RMuseum.Services.Implementation
|
||||
{
|
||||
/// <summary>
|
||||
/// IGanjoorService implementation
|
||||
/// </summary>
|
||||
public partial class GanjoorService : IGanjoorService
|
||||
{
|
||||
/// <summary>
|
||||
/// tajik poets
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<RServiceResult<GanjoorTajikPoet[]>> GetTajikPoetsAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
return new RServiceResult<GanjoorTajikPoet[]>(await _context.TajikPoets.AsNoTracking().ToArrayAsync());
|
||||
}
|
||||
catch (Exception exp)
|
||||
{
|
||||
return new RServiceResult<GanjoorTajikPoet[]>(null, exp.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// tajik page by url
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="catPoems"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<RServiceResult<GanjoorPageCompleteViewModel>> GetTajikPageByUrlAsync(string url, bool catPoems = false)
|
||||
{
|
||||
try
|
||||
{
|
||||
var res = await GetPageByUrl(url, catPoems);
|
||||
if (!string.IsNullOrEmpty(res.ExceptionString))
|
||||
return res;
|
||||
GanjoorPageCompleteViewModel page = res.Result;
|
||||
|
||||
int poetId = page.Poem != null ? page.Poem.Category.Poet.Id : page.PoetOrCat.Poet.Id;
|
||||
|
||||
var tajikPoet = await _context.TajikPoets.AsNoTracking().Where(p => p.Id == poetId).SingleOrDefaultAsync();
|
||||
if (tajikPoet == null)
|
||||
return new RServiceResult<GanjoorPageCompleteViewModel>(null, "Ин суханвар ҳануз ба тоҷикӣ дар дастрас нест.");
|
||||
if(page.PoetOrCat != null && page.PoetOrCat.Poet != null)
|
||||
{
|
||||
page.PoetOrCat.Poet.Nickname = tajikPoet.TajikNickname;
|
||||
page.PoetOrCat.Poet.Description = tajikPoet.TajikDescription;
|
||||
}
|
||||
|
||||
if(page.Poem != null && page.Poem.Category != null && page.Poem.Category.Poet != null)
|
||||
{
|
||||
page.Poem.Category.Poet.Nickname = tajikPoet.TajikNickname;
|
||||
page.Poem.Category.Poet.Description = tajikPoet.TajikDescription;
|
||||
}
|
||||
|
||||
int catId = page.Poem != null ? page.Poem.Category.Cat.Id : page.PoetOrCat.Cat.Id;
|
||||
|
||||
var tajikCat = await _context.TajikCats.AsNoTracking().Where(c => c.Id == catId).SingleAsync();
|
||||
if (page.Poem != null && page.Poem.Category != null && page.Poem.Category.Cat != null)
|
||||
{
|
||||
page.Poem.Category.Cat.Title = tajikCat.TajikTitle;
|
||||
page.Poem.Category.Cat.Description = tajikCat.TajikDescription;
|
||||
foreach (var parent in page.Poem.Category.Cat.Ancestors)
|
||||
{
|
||||
var tajikParent = await _context.TajikCats.AsNoTracking().Where(c => c.Id == parent.Id).SingleAsync();
|
||||
parent.Title = tajikParent.TajikTitle;
|
||||
parent.Description = tajikParent.TajikDescription;
|
||||
}
|
||||
foreach (var child in page.Poem.Category.Cat.Children)
|
||||
{
|
||||
var tajikChild = await _context.TajikCats.AsNoTracking().Where(c => c.Id == child.Id).SingleAsync();
|
||||
child.Title = tajikChild.TajikTitle;
|
||||
child.Description = tajikChild.TajikDescription;
|
||||
}
|
||||
}
|
||||
|
||||
if (page.PoetOrCat != null && page.PoetOrCat.Cat != null)
|
||||
{
|
||||
page.PoetOrCat.Cat.Title = tajikCat.TajikTitle;
|
||||
page.PoetOrCat.Cat.Description = tajikCat.TajikDescription;
|
||||
foreach (var parent in page.PoetOrCat.Cat.Ancestors)
|
||||
{
|
||||
var tajikParent = await _context.TajikCats.AsNoTracking().Where(c => c.Id == parent.Id).SingleAsync();
|
||||
parent.Title = tajikParent.TajikTitle;
|
||||
parent.Description = tajikParent.TajikDescription;
|
||||
}
|
||||
foreach (var child in page.PoetOrCat.Cat.Children)
|
||||
{
|
||||
var tajikChild = await _context.TajikCats.AsNoTracking().Where(c => c.Id == child.Id).SingleAsync();
|
||||
child.Title = tajikChild.TajikTitle;
|
||||
child.Description = tajikChild.TajikDescription;
|
||||
}
|
||||
if (page.PoetOrCat.Cat.Next != null)
|
||||
{
|
||||
var nextCat = await _context.TajikCats.AsNoTracking().Where(c => c.Id == page.PoetOrCat.Cat.Next.Id).SingleAsync();
|
||||
page.PoetOrCat.Cat.Next.Title = nextCat.TajikTitle;
|
||||
}
|
||||
if (page.PoetOrCat.Cat.Previous != null)
|
||||
{
|
||||
var preCat = await _context.TajikCats.AsNoTracking().Where(c => c.Id == page.PoetOrCat.Cat.Previous.Id).SingleAsync();
|
||||
page.PoetOrCat.Cat.Previous.Title = preCat.TajikTitle;
|
||||
}
|
||||
|
||||
if (page.PoetOrCat.Cat.Poems != null)
|
||||
{
|
||||
var tajikPoems = await _context.TajikPoems.AsNoTracking().Where(p => p.CatId == catId).ToListAsync();
|
||||
foreach (var poem in page.PoetOrCat.Cat.Poems)
|
||||
{
|
||||
var tajikPoem = tajikPoems.Where(p => p.Id == poem.Id).SingleOrDefault();
|
||||
if (tajikPoem != null)
|
||||
{
|
||||
poem.Title = tajikPoem.TajikTitle;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (page.Poem != null)
|
||||
{
|
||||
var tajikPoem = await _context.TajikPoems.AsNoTracking().Where(p => p.Id == page.Poem.Id).SingleAsync();
|
||||
page.Poem.Title = tajikPoem.TajikTitle;
|
||||
page.Poem.PlainText = tajikPoem.TajikPlainText;
|
||||
page.Poem.HtmlText = tajikPoem.TajikHtmlText;
|
||||
|
||||
var tajikVerses = await _context.TajikVerses.AsNoTracking().Where(v => v.PoemId == page.Poem.Id).OrderBy(v => v.VOrder).ToListAsync();
|
||||
foreach( var verse in page.Poem.Verses)
|
||||
{
|
||||
verse.Text = tajikVerses.Where(v => v.VOrder == verse.VOrder).SingleOrDefault().TajikText;
|
||||
}
|
||||
|
||||
if(page.Poem.Next != null)
|
||||
{
|
||||
var nextPoem = await _context.TajikPoems.AsNoTracking().Where(p => p.Id == page.Poem.Next.Id).SingleAsync();
|
||||
page.Poem.Next.Title = nextPoem.TajikTitle;
|
||||
|
||||
}
|
||||
if (page.Poem.Previous != null)
|
||||
{
|
||||
var prePoem = await _context.TajikPoems.AsNoTracking().Where(p => p.Id == page.Poem.Previous.Id).SingleAsync();
|
||||
page.Poem.Next.Title = prePoem.TajikTitle;
|
||||
}
|
||||
}
|
||||
return new RServiceResult<GanjoorPageCompleteViewModel>(page);
|
||||
}
|
||||
catch (Exception exp)
|
||||
{
|
||||
return new RServiceResult<GanjoorPageCompleteViewModel>(null, exp.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,125 +0,0 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System;
|
||||
using RMuseum.Models.Ganjoor;
|
||||
using System.Threading.Tasks;
|
||||
using RSecurityBackend.Models.Generic;
|
||||
using RMuseum.Models.Ganjoor.ViewModels;
|
||||
using System.Linq;
|
||||
using Org.BouncyCastle.Asn1.Ocsp;
|
||||
|
||||
namespace RMuseum.Services.Implementation
|
||||
{
|
||||
/// <summary>
|
||||
/// IGanjoorService implementation
|
||||
/// </summary>
|
||||
public partial class GanjoorService : IGanjoorService
|
||||
{
|
||||
/// <summary>
|
||||
/// tajik poets
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<RServiceResult<GanjoorTajikPoet[]>> GetTajikPoetsAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
return new RServiceResult<GanjoorTajikPoet[]>(await _context.TajikPoets.AsNoTracking().ToArrayAsync());
|
||||
}
|
||||
catch (Exception exp)
|
||||
{
|
||||
return new RServiceResult<GanjoorTajikPoet[]>(null, exp.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// tajik page by url
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="catPoems"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<RServiceResult<GanjoorPageCompleteViewModel>> GetTajikPageByUrlAsync(string url, bool catPoems = false)
|
||||
{
|
||||
try
|
||||
{
|
||||
var res = await GetPageByUrl(url, catPoems);
|
||||
if (!string.IsNullOrEmpty(res.ExceptionString))
|
||||
return res;
|
||||
GanjoorPageCompleteViewModel page = res.Result;
|
||||
|
||||
var tajikPoet = await _context.TajikPoets.AsNoTracking().Where(p => p.Id == page.PoetOrCat.Poet.Id).SingleOrDefaultAsync();
|
||||
if (tajikPoet == null)
|
||||
return new RServiceResult<GanjoorPageCompleteViewModel>(null, "Ин суханвар ҳануз ба тоҷикӣ дар дастрас нест.");
|
||||
page.PoetOrCat.Poet.Nickname = tajikPoet.TajikNickname;
|
||||
page.PoetOrCat.Poet.Description = tajikPoet.TajikDescription;
|
||||
var tajikCat = await _context.TajikCats.AsNoTracking().Where(c => c.Id == page.PoetOrCat.Cat.Id).SingleAsync();
|
||||
page.PoetOrCat.Cat.Title = tajikCat.TajikTitle;
|
||||
page.PoetOrCat.Cat.Description = tajikCat.TajikDescription;
|
||||
foreach (var parent in page.PoetOrCat.Cat.Ancestors)
|
||||
{
|
||||
var tajikParent = await _context.TajikCats.AsNoTracking().Where(c => c.Id == parent.Id).SingleAsync();
|
||||
parent.Title = tajikParent.TajikTitle;
|
||||
parent.Description = tajikParent.TajikDescription;
|
||||
}
|
||||
foreach (var child in page.PoetOrCat.Cat.Children)
|
||||
{
|
||||
var tajikChild = await _context.TajikCats.AsNoTracking().Where(c => c.Id == child.Id).SingleAsync();
|
||||
child.Title = tajikChild.TajikTitle;
|
||||
child.Description = tajikChild.TajikDescription;
|
||||
}
|
||||
if(page.PoetOrCat.Cat.Next != null)
|
||||
{
|
||||
var nextCat = await _context.TajikCats.AsNoTracking().Where(c => c.Id == page.PoetOrCat.Cat.Next.Id).SingleAsync();
|
||||
page.PoetOrCat.Cat.Next.Title = nextCat.TajikTitle;
|
||||
}
|
||||
if (page.PoetOrCat.Cat.Previous != null)
|
||||
{
|
||||
var preCat = await _context.TajikCats.AsNoTracking().Where(c => c.Id == page.PoetOrCat.Cat.Previous.Id).SingleAsync();
|
||||
page.PoetOrCat.Cat.Previous.Title = preCat.TajikTitle;
|
||||
}
|
||||
|
||||
if (page.PoetOrCat.Cat.Poems != null)
|
||||
{
|
||||
var tajikPoems = await _context.TajikPoems.AsNoTracking().Where(p => p.CatId == page.PoetOrCat.Cat.Id).ToListAsync();
|
||||
foreach (var poem in page.PoetOrCat.Cat.Poems)
|
||||
{
|
||||
var tajikPoem = tajikPoems.Where(p => p.Id == poem.Id).SingleOrDefault();
|
||||
if(tajikPoem != null)
|
||||
{
|
||||
poem.Title = tajikPoem.TajikTitle;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(page.Poem != null)
|
||||
{
|
||||
var tajikPoem = await _context.TajikPoems.AsNoTracking().Where(p => p.Id == page.Poem.Id).SingleAsync();
|
||||
page.Poem.Title = tajikPoem.TajikTitle;
|
||||
page.Poem.PlainText = tajikPoem.TajikPlainText;
|
||||
page.Poem.HtmlText = tajikPoem.TajikHtmlText;
|
||||
|
||||
var tajikVerses = await _context.TajikVerses.AsNoTracking().Where(v => v.PoemId == page.Poem.Id).OrderBy(v => v.VOrder).ToListAsync();
|
||||
foreach( var verse in page.Poem.Verses)
|
||||
{
|
||||
verse.Text = tajikVerses.Where(v => v.VOrder == verse.VOrder).SingleOrDefault().TajikText;
|
||||
}
|
||||
|
||||
if(page.Poem.Next != null)
|
||||
{
|
||||
var nextPoem = await _context.TajikPoems.AsNoTracking().Where(p => p.Id == page.Poem.Next.Id).SingleAsync();
|
||||
page.Poem.Next.Title = nextPoem.TajikTitle;
|
||||
|
||||
}
|
||||
if (page.Poem.Previous != null)
|
||||
{
|
||||
var prePoem = await _context.TajikPoems.AsNoTracking().Where(p => p.Id == page.Poem.Previous.Id).SingleAsync();
|
||||
page.Poem.Next.Title = prePoem.TajikTitle;
|
||||
}
|
||||
}
|
||||
return new RServiceResult<GanjoorPageCompleteViewModel>(page);
|
||||
}
|
||||
catch (Exception exp)
|
||||
{
|
||||
return new RServiceResult<GanjoorPageCompleteViewModel>(null, exp.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -42,7 +42,7 @@ namespace TajikGanjoor.Pages
|
||||
IsHomePage = Request.Path == "/";
|
||||
if (!IsHomePage)
|
||||
{
|
||||
var pageQuery = await _httpClient.GetAsync($"{APIRoot.Url}/api/ganjoor/page?url={Request.Path}&catPoems=true");
|
||||
var pageQuery = await _httpClient.GetAsync($"{APIRoot.Url}/api/ganjoor/tajik/page?url={Request.Path}&catPoems=true");
|
||||
if (!pageQuery.IsSuccessStatusCode)
|
||||
{
|
||||
if (pageQuery.StatusCode == HttpStatusCode.NotFound)
|
||||
@ -122,7 +122,7 @@ namespace TajikGanjoor.Pages
|
||||
private async Task<bool> PreparePoetsAsync()
|
||||
{
|
||||
var cacheKey = $"/api/ganjoor/poets";
|
||||
if (!_memoryCache.TryGetValue(cacheKey, out List<GanjoorPoetViewModel>? ganjoorPoets))
|
||||
if (!_memoryCache.TryGetValue(cacheKey, out List<GanjoorPoetViewModel>? poets))
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -132,7 +132,7 @@ namespace TajikGanjoor.Pages
|
||||
LastError = JsonConvert.DeserializeObject<string>(await res1.Content.ReadAsStringAsync()) ?? "!res1.IsSuccessStatusCode";
|
||||
return false;
|
||||
}
|
||||
ganjoorPoets = JArray.Parse(await res1.Content.ReadAsStringAsync()).ToObject<List<GanjoorPoetViewModel>>();
|
||||
var ganjoorPoets = JArray.Parse(await res1.Content.ReadAsStringAsync()).ToObject<List<GanjoorPoetViewModel>>();
|
||||
ganjoorPoets = ganjoorPoets ?? [];
|
||||
|
||||
var response = await _httpClient.GetAsync($"{APIRoot.Url}/api/ganjoor/tajik/poets");
|
||||
@ -143,7 +143,7 @@ namespace TajikGanjoor.Pages
|
||||
}
|
||||
var tajkPoets = JArray.Parse(await response.Content.ReadAsStringAsync()).ToObject<List<GanjoorTajikPoet>>();
|
||||
|
||||
List<GanjoorPoetViewModel> poets = new List<GanjoorPoetViewModel>();
|
||||
poets = new List<GanjoorPoetViewModel>();
|
||||
foreach (var tajikPoet in tajkPoets)
|
||||
{
|
||||
var poet = ganjoorPoets.Where(p => p.Id == tajikPoet.Id).Single();
|
||||
@ -167,7 +167,7 @@ namespace TajikGanjoor.Pages
|
||||
|
||||
}
|
||||
|
||||
Poets = ganjoorPoets ?? [];
|
||||
Poets = poets ?? [];
|
||||
return true;
|
||||
}
|
||||
private void PrepareNextPre()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user