diff --git a/RMuseum/RMuseum.xml b/RMuseum/RMuseum.xml
index 20d1b4b8..dea6efe2 100644
--- a/RMuseum/RMuseum.xml
+++ b/RMuseum/RMuseum.xml
@@ -20634,6 +20634,14 @@
+
+
+ get next unreviewed cat correction
+
+
+
+
+
aggressive cache
diff --git a/RMuseum/Services/Implementation/GanjoorService.cs b/RMuseum/Services/Implementation/GanjoorService.cs
index 6b875ab0..8842a167 100644
--- a/RMuseum/Services/Implementation/GanjoorService.cs
+++ b/RMuseum/Services/Implementation/GanjoorService.cs
@@ -4115,6 +4115,51 @@ namespace RMuseum.Services.Implementation
}
+ ///
+ /// get next unreviewed cat correction
+ ///
+ ///
+ ///
+ ///
+ public async Task> GetNextUnreviewedCatCorrectionAsync(int skip, bool onlyUserCorrections)
+ {
+ string systemEmail = $"{Configuration.GetSection("Ganjoor")["SystemEmail"]}";
+ var systemUser = await _appUserService.FindUserByEmail(systemEmail);
+ var systemUserId = systemUser.Result == null ? Guid.Empty : (Guid)systemUser.Result.Id;
+
+ var dbCorrection = await _context.GanjoorCatCorrections.AsNoTracking().Include(c => c.User)
+ .Where(c => c.Reviewed == false && (onlyUserCorrections == false || c.UserId != systemUserId))
+ .OrderBy(c => c.Id)
+ .Skip(skip)
+ .FirstOrDefaultAsync();
+
+ if (dbCorrection == null)
+ return new RServiceResult(null);
+
+ return new RServiceResult
+ (
+ new GanjoorCatCorrectionViewModel()
+ {
+ Id = dbCorrection.Id,
+ CatId = dbCorrection.CatId,
+ UserId = dbCorrection.UserId,
+ Description = dbCorrection.Description,
+ DescriptionHtml = dbCorrection.DescriptionHtml,
+ OriginalDescription = dbCorrection.OriginalDescription,
+ OriginalDescriptionHtml = dbCorrection.OriginalDescriptionHtml,
+ Note = dbCorrection.Note,
+ Date = dbCorrection.Date,
+ Reviewed = dbCorrection.Reviewed,
+ Result = dbCorrection.Result,
+ ReviewNote = dbCorrection.ReviewNote,
+ ReviewDate = dbCorrection.ReviewDate,
+ UserNickname = dbCorrection.HideMyName && dbCorrection.Reviewed ? "" : string.IsNullOrEmpty(dbCorrection.User.NickName) ? dbCorrection.User.Id.ToString() : dbCorrection.User.NickName,
+ HideMyName = dbCorrection.HideMyName,
+ }
+ );
+ }
+
+
///
/// aggressive cache
///