diff --git a/RMuseum/Controllers/ContributionStatsController.cs b/RMuseum/Controllers/ContributionStatsController.cs
index 1b8997e1..8c2959c5 100644
--- a/RMuseum/Controllers/ContributionStatsController.cs
+++ b/RMuseum/Controllers/ContributionStatsController.cs
@@ -159,7 +159,7 @@ namespace RMuseum.Controllers
{
if (!_memoryCache.TryGetValue($"section/corrections/{DateTime.Now.Date}", out SummedUpViewModel result))
{
- var res = await _service.GetApprrovedSedtionEditsSummedUpStatsAsync();
+ var res = await _service.GetApprrovedSectionEditsSummedUpStatsAsync();
if (!string.IsNullOrEmpty(res.ExceptionString))
return BadRequest(res.ExceptionString);
result = res.Result;
diff --git a/RMuseum/RMuseum.xml b/RMuseum/RMuseum.xml
index d79b4f99..5a664181 100644
--- a/RMuseum/RMuseum.xml
+++ b/RMuseum/RMuseum.xml
@@ -15970,9 +15970,32 @@
-
+
- summed up stats of approved secton corrections
+ summed up stats of approved section corrections
+
+
+
+
+
+ approved cat edits daily
+
+
+
+
+
+
+
+ approved cat edits grouped by user
+
+
+
+
+
+
+
+
+ summed up stats of approved cat corrections
@@ -18922,9 +18945,32 @@
-
+
- summed up stats of approved secton corrections
+ summed up stats of approved section corrections
+
+
+
+
+
+ approved cat edits daily
+
+
+
+
+
+
+
+ approved cat edits grouped by user
+
+
+
+
+
+
+
+
+ summed up stats of approved cat corrections
diff --git a/RMuseum/Services/IContributionStatsService.cs b/RMuseum/Services/IContributionStatsService.cs
index d59285e0..7c067721 100644
--- a/RMuseum/Services/IContributionStatsService.cs
+++ b/RMuseum/Services/IContributionStatsService.cs
@@ -51,11 +51,33 @@ namespace RMuseum.Services
Task> GetApprovedSectionEditsGroupedByUserAsync(PagingParameterModel paging, DateTime? day, Guid? userId);
///
- /// summed up stats of approved secton corrections
+ /// summed up stats of approved section corrections
///
///
- Task> GetApprrovedSedtionEditsSummedUpStatsAsync();
+ Task> GetApprrovedSectionEditsSummedUpStatsAsync();
+ ///
+ /// approved cat edits daily
+ ///
+ ///
+ ///
+ ///
+ Task> GetApprovedCatEditsGroupedByDateAsync(PagingParameterModel paging, Guid? userId);
+
+ ///
+ /// approved cat edits grouped by user
+ ///
+ ///
+ ///
+ ///
+ ///
+ Task> GetApprovedCatEditsGroupedByUserAsync(PagingParameterModel paging, DateTime? day, Guid? userId);
+
+ ///
+ /// summed up stats of approved cat corrections
+ ///
+ ///
+ Task> GetApprrovedCatEditsSummedUpStatsAsync();
}
}
diff --git a/RMuseum/Services/Implementation/ContributionStatsService.cs b/RMuseum/Services/Implementation/ContributionStatsService.cs
index 0b918638..b8644e1f 100644
--- a/RMuseum/Services/Implementation/ContributionStatsService.cs
+++ b/RMuseum/Services/Implementation/ContributionStatsService.cs
@@ -206,10 +206,10 @@ namespace RMuseum.Services.Implementation
}
///
- /// summed up stats of approved secton corrections
+ /// summed up stats of approved section corrections
///
///
- public async Task> GetApprrovedSedtionEditsSummedUpStatsAsync()
+ public async Task> GetApprrovedSectionEditsSummedUpStatsAsync()
{
try
{
@@ -241,6 +241,121 @@ namespace RMuseum.Services.Implementation
}
+ ///
+ /// approved cat edits daily
+ ///
+ ///
+ ///
+ ///
+ public async Task> GetApprovedCatEditsGroupedByDateAsync(PagingParameterModel paging, Guid? userId)
+ {
+ try
+ {
+ return new RServiceResult<(PaginationMetadata PagingMeta, GroupedByDateViewModel[] Tracks)>(
+ await QueryablePaginator.Paginate(
+ _context.GanjoorCatCorrections
+ .Where(c =>
+ c.Result == Models.Ganjoor.CorrectionReviewResult.Approved
+ &&
+ (userId == null || c.UserId == userId)
+ )
+ .GroupBy(a => a.Date.Date)
+ .Select(a => new GroupedByDateViewModel()
+ {
+ Date = a.Key.Date.ToString(),
+ Number = a.Count(),
+ }).OrderByDescending(s => s.Date)
+ , paging));
+ }
+ catch (Exception e)
+ {
+ return new RServiceResult<(PaginationMetadata PagingMeta, GroupedByDateViewModel[] Tracks)>((null, null), e.ToString());
+ }
+ }
+
+ ///
+ /// approved cat edits grouped by user
+ ///
+ ///
+ ///
+ ///
+ ///
+ public async Task> GetApprovedCatEditsGroupedByUserAsync(PagingParameterModel paging, DateTime? day, Guid? userId)
+ {
+ try
+ {
+ return new RServiceResult<(PaginationMetadata PagingMeta, GroupedByUserViewModel[] Tracks)>(
+ await QueryablePaginator.Paginate(
+ _context.GanjoorCatCorrections
+ .Join
+ (
+ _context.Users,
+ correction => correction.UserId,
+ user => user.Id,
+ (correction, user) => new
+ {
+ correction.Date,
+ UserId = user.Id,
+ UserName = user.NickName,
+ correction.Result,
+ }
+ )
+ .Where(f =>
+ f.Result == Models.Ganjoor.CorrectionReviewResult.Approved
+ &&
+ (day == null || f.Date.Date == day) && (userId == null || f.UserId == userId))
+ .GroupBy(a => new { a.UserId, a.UserName }).Select(a => new GroupedByUserViewModel()
+ {
+ UserId = a.Key.UserId,
+ UserName = a.Key.UserName,
+ Number = a.Count(),
+ }).OrderByDescending(s => s.Number)
+ , paging));
+
+ }
+ catch (Exception e)
+ {
+ return new RServiceResult<(PaginationMetadata PagingMeta, GroupedByUserViewModel[] Tracks)>((null, null), e.ToString());
+ }
+ }
+
+ ///
+ /// summed up stats of approved cat corrections
+ ///
+ ///
+ public async Task> GetApprrovedCatEditsSummedUpStatsAsync()
+ {
+ try
+ {
+ return new RServiceResult
+ (
+ new SummedUpViewModel()
+ {
+ Days = await _context.GanjoorCatCorrections
+ .Where(f => f.Result == Models.Ganjoor.CorrectionReviewResult.Approved
+ )
+ .GroupBy(f => f.Date.Date).CountAsync(),
+ TotalCount = await _context.GanjoorCatCorrections
+
+ .Where(f => f.Result == Models.Ganjoor.CorrectionReviewResult.Approved
+ )
+ .CountAsync(),
+ UserIds = await _context.GanjoorCatCorrections
+ .Where(f => f.Result == Models.Ganjoor.CorrectionReviewResult.Approved
+ )
+ .GroupBy(f => f.UserId).CountAsync(),
+ }
+ );
+
+ }
+ catch (Exception e)
+ {
+ return new RServiceResult(null, e.ToString());
+ }
+ }
+
+
+
///
/// Database Context
///