#445 tajik poem services

This commit is contained in:
Hamid Reza Mohammadi 2024-07-21 10:43:19 +03:30
parent 8b2e110077
commit 47c076cf3a
7 changed files with 169 additions and 4 deletions

View File

@ -11,6 +11,11 @@ namespace RMuseum.Models.Ganjoor
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
/// <summary>
/// cat id
/// </summary>
public int CatId { get; set; }
/// <summary>
/// title
/// </summary>

View File

@ -14,7 +14,7 @@ namespace RMuseum.Models.Ganjoor
/// <summary>
/// tajik nick name
/// </summary>
public string TajikNickName { get; set; }
public string TajikNickname { get; set; }
/// <summary>
/// additional descripion or note in Tajik

View File

@ -11,6 +11,17 @@ namespace RMuseum.Models.Ganjoor
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
/// <summary>
/// poem_id
/// </summary>
public int PoemId { get; set; }
/// <summary>
/// vorder
/// </summary>
public int VOrder { get; set; }
/// <summary>
/// tajik text
/// </summary>

View File

@ -9780,6 +9780,11 @@
id
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorTajikPoem.CatId">
<summary>
cat id
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorTajikPoem.TajikTitle">
<summary>
title
@ -9800,7 +9805,7 @@
id
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorTajikPoet.TajikNickName">
<member name="P:RMuseum.Models.Ganjoor.GanjoorTajikPoet.TajikNickname">
<summary>
tajik nick name
</summary>
@ -9815,6 +9820,16 @@
id
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorTajikVerse.PoemId">
<summary>
poem_id
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorTajikVerse.VOrder">
<summary>
vorder
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.GanjoorTajikVerse.TajikText">
<summary>
tajik text
@ -16788,6 +16803,20 @@
transilerate verse data from Persian to Tajiki
</summary>
</member>
<member name="M:RMuseum.Services.IGanjoorService.GetTajikPoetsAsync">
<summary>
tajik poets
</summary>
<returns></returns>
</member>
<member name="M:RMuseum.Services.IGanjoorService.GetTajikPageByUrlAsync(System.String,System.Boolean)">
<summary>
tajik page by url
</summary>
<param name="url"></param>
<param name="catPoems"></param>
<returns></returns>
</member>
<member name="T:RMuseum.Services.IGanjoorTranslationService">
<summary>
translation service implementation
@ -19259,6 +19288,14 @@
</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

View File

@ -1472,5 +1472,19 @@ namespace RMuseum.Services
/// </summary>
void Transilerate();
/// <summary>
/// tajik poets
/// </summary>
/// <returns></returns>
Task<RServiceResult<GanjoorTajikPoet[]>> GetTajikPoetsAsync();
/// <summary>
/// tajik page by url
/// </summary>
/// <param name="url"></param>
/// <param name="catPoems"></param>
/// <returns></returns>
Task<RServiceResult<GanjoorPageCompleteViewModel>> GetTajikPageByUrlAsync(string url, bool catPoems = false);
}
}

View File

@ -53,7 +53,9 @@ namespace RMuseum.Services.Implementation
GanjoorTajikVerse tajikVerse = new GanjoorTajikVerse()
{
Id = verse.Id,
TajikText = TajikTransilerator.Transilerate(verse.Text)
PoemId = verse.PoemId,
VOrder = verse.VOrder,
TajikText = TajikTransilerator.Transilerate(verse.Text),
};
context.Add(tajikVerse);
}
@ -64,6 +66,7 @@ namespace RMuseum.Services.Implementation
GanjoorTajikPoem tajikPoem = new GanjoorTajikPoem()
{
Id = poem.Id,
CatId = poem.CatId,
TajikTitle = TajikTransilerator.Transilerate(poem.Title),
};
context.Add(tajikPoem);
@ -91,7 +94,7 @@ namespace RMuseum.Services.Implementation
GanjoorTajikPoet tajikPoet = new GanjoorTajikPoet()
{
Id = poet.Id,
TajikNickName = TajikTransilerator.Transilerate(poet.Nickname),
TajikNickname = TajikTransilerator.Transilerate(poet.Nickname),
TajikDescription = TajikTransilerator.Transilerate(poet.Description),
};
context.Add(tajikPoet);

View File

@ -3,6 +3,9 @@ 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
{
@ -26,5 +29,97 @@ namespace RMuseum.Services.Implementation
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());
}
}
}
}