diff --git a/RMuseum/Models/Ganjoor/ViewModels/PoetOrCatWordStat.cs b/RMuseum/Models/Ganjoor/ViewModels/PoetOrCatWordStat.cs
new file mode 100644
index 00000000..c51c672d
--- /dev/null
+++ b/RMuseum/Models/Ganjoor/ViewModels/PoetOrCatWordStat.cs
@@ -0,0 +1,11 @@
+namespace RMuseum.Models.Ganjoor.ViewModels
+{
+ public class PoetOrCatWordStat
+ {
+ public int Id { get; set; }
+ public string Name { get; set; }
+ public int Count { get; set; }
+ public int RowNmbrInCat { get; set; }
+ public int TotalWordCount { get; set; }
+ }
+}
diff --git a/RMuseum/RMuseum.xml b/RMuseum/RMuseum.xml
index bafc2548..4c230796 100644
--- a/RMuseum/RMuseum.xml
+++ b/RMuseum/RMuseum.xml
@@ -19233,6 +19233,14 @@
+
+
+ comparison of word counts for poets
+
+
+
+
+
build word counts
diff --git a/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-CategoryWordCounts.cs b/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-CategoryWordCounts.cs
index 8a8925ef..747a2af3 100644
--- a/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-CategoryWordCounts.cs
+++ b/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-CategoryWordCounts.cs
@@ -9,6 +9,7 @@ using RSecurityBackend.Services.Implementation;
using System.Threading.Tasks;
using RSecurityBackend.Models.Generic.Db;
using RSecurityBackend.Models.Generic;
+using RMuseum.Models.Ganjoor.ViewModels;
namespace RMuseum.Services.Implementation
{
@@ -66,6 +67,43 @@ namespace RMuseum.Services.Implementation
}
}
+ ///
+ /// comparison of word counts for poets
+ ///
+ ///
+ ///
+ ///
+ public async Task> GetCategoryWordCountsByPoetsAsync(string term, PagingParameterModel paging)
+ {
+ try
+ {
+ var source =
+ from cwd in _context.CategoryWordCounts
+ join catsum in _context.CategoryWordCountSummaries on cwd.Id equals catsum.Id
+ join cat in _context.GanjoorCategories on cwd.CatId equals cat.Id
+ where cat.ParentId == 0 && cwd.Word == term
+ orderby cwd.Count
+ select
+ new PoetOrCatWordStat()
+ {
+ Id = cat.PoetId,
+ Name = cat.Title,
+ Count = cwd.Count,
+ RowNmbrInCat = cwd.RowNmbrInCat,
+ TotalWordCount = catsum.TotalWordCount,
+ };
+
+ (PaginationMetadata PagingMeta, PoetOrCatWordStat[] Items) paginatedResult =
+ await QueryablePaginator.Paginate(source, paging);
+
+ return new RServiceResult<(PaginationMetadata PagingMeta, PoetOrCatWordStat[] Items)>(paginatedResult);
+ }
+ catch (Exception exp)
+ {
+ return new RServiceResult<(PaginationMetadata PagingMeta, PoetOrCatWordStat[] Items)>((null, null), exp.ToString());
+ }
+ }
+
///
/// build word counts