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 ///