From fadda66e686d16195dd2c92206fcad2aeb56f063 Mon Sep 17 00:00:00 2001 From: Hamid Reza Mohammadi Date: Tue, 7 Jun 2022 20:05:02 +0430 Subject: [PATCH] docs: #327 initial code for applying suggested verse deletions --- .../GanjoorService-ModeratePoemCorrection.cs | 39 ++++++++++++++++++- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-ModeratePoemCorrection.cs b/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-ModeratePoemCorrection.cs index 91cbc84c..be056948 100644 --- a/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-ModeratePoemCorrection.cs +++ b/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-ModeratePoemCorrection.cs @@ -108,6 +108,8 @@ namespace RMuseum.Services.Implementation foreach (var moderatedVerse in moderation.VerseOrderText) { + if (moderatedVerse.MarkForDelete) + continue; if (moderatedVerse.Result == CorrectionReviewResult.NotReviewed) return new RServiceResult(null, $"تغییرات مصرع {moderatedVerse.VORder} بررسی نشده است."); var dbVerse = dbCorrection.VerseOrderText.Where(c => c.VORder == moderatedVerse.VORder).Single(); @@ -122,7 +124,30 @@ namespace RMuseum.Services.Implementation } } - if(modifiedVerses.Count > 0) + bool versesDeleted = false; + + foreach (var moderatedVerse in moderation.VerseOrderText.Where(v => v.MarkForDelete).ToList()) + { + if(moderatedVerse.Result == CorrectionReviewResult.NotReviewed) + return new RServiceResult(null, $"نتیجهٔ پیشنهاد حذف مصرع {moderatedVerse.VORder} بررسی نشده است."); + var dbVerse = dbCorrection.VerseOrderText.Where(c => c.VORder == moderatedVerse.VORder).Single(); + dbVerse.MarkForDeleteResult = moderatedVerse.MarkForDeleteResult; + dbVerse.ReviewNote = moderatedVerse.ReviewNote; + if (dbVerse.MarkForDeleteResult == CorrectionReviewResult.Approved) + { + dbCorrection.AffectedThePoem = true; + versesDeleted = true; + updatePoem = true; + + var poemVerse = poemVerses.Where(v => v.VOrder == moderatedVerse.VORder).Single(); + _context.Remove(poemVerse); + + return new RServiceResult(null, "هنوز حذف مصرع‌ها پیاده‌سازی نشده است."); + } + } + + + if (modifiedVerses.Count > 0) { _context.UpdateRange(modifiedVerses); dbPoem.HtmlText = PrepareHtmlText(poemVerses); @@ -131,12 +156,22 @@ namespace RMuseum.Services.Implementation updatePoem = true; } - if(updatePoem) + + if (updatePoem) { _context.Update(dbPoem); _context.Update(dbPage); } + if (versesDeleted) + { + var undeletedPoemVerss = await _context.GanjoorVerses.AsNoTracking().Where(p => p.PoemId == dbCorrection.PoemId).OrderBy(v => v.VOrder).ToListAsync(); + dbPoem.HtmlText = PrepareHtmlText(undeletedPoemVerss); + dbPoem.PlainText = PreparePlainText(undeletedPoemVerss); + dbPage.HtmlText = dbPoem.HtmlText; + updatePoem = true; + } + if (modifiedVerses.Count > 0) { foreach (var section in sections)