#19 moderation allows no state change now, for sending tips on correcting or improving metadata

This commit is contained in:
Hamid Reza Mohammadi 2020-10-16 09:44:09 +03:30
parent 1a9a7d7705
commit 881b0d3a02
3 changed files with 61 additions and 8 deletions

View File

@ -1,14 +1,33 @@
namespace RMuseum.Models.GanjoorAudio.ViewModels
{
/// <summary>
/// Moderation Result
/// </summary>
public enum PoemNarrationModerationResult
{
/// <summary>
/// no moderation
/// </summary>
MetadataNeedsFixation = 0,
/// <summary>
/// approve
/// </summary>
Approve = 1,
/// <summary>
/// reject
/// </summary>
Reject = 2
}
/// <summary>
/// Poem Narration Moderation View Model
/// </summary>
public class PoemNarrationModerateViewModel
{
/// <summary>
/// Approve or Reject
/// Moderation Result
/// </summary>
public bool Approve { get; set; }
public PoemNarrationModerationResult Result { get; set; }
/// <summary>
/// Rejection Message

View File

@ -1916,14 +1916,34 @@
is default
</summary>
</member>
<member name="T:RMuseum.Models.GanjoorAudio.ViewModels.PoemNarrationModerationResult">
<summary>
Moderation Result
</summary>
</member>
<member name="F:RMuseum.Models.GanjoorAudio.ViewModels.PoemNarrationModerationResult.MetadataNeedsFixation">
<summary>
no moderation
</summary>
</member>
<member name="F:RMuseum.Models.GanjoorAudio.ViewModels.PoemNarrationModerationResult.Approve">
<summary>
approve
</summary>
</member>
<member name="F:RMuseum.Models.GanjoorAudio.ViewModels.PoemNarrationModerationResult.Reject">
<summary>
reject
</summary>
</member>
<member name="T:RMuseum.Models.GanjoorAudio.ViewModels.PoemNarrationModerateViewModel">
<summary>
Poem Narration Moderation View Model
</summary>
</member>
<member name="P:RMuseum.Models.GanjoorAudio.ViewModels.PoemNarrationModerateViewModel.Approve">
<member name="P:RMuseum.Models.GanjoorAudio.ViewModels.PoemNarrationModerateViewModel.Result">
<summary>
Approve or Reject
Moderation Result
</summary>
</member>
<member name="P:RMuseum.Models.GanjoorAudio.ViewModels.PoemNarrationModerateViewModel.Message">

View File

@ -519,8 +519,11 @@ namespace RMuseum.Services.Implementation
return new RServiceResult<bool>(false, "خوانش می‌بایست در وضعیت در انتظار بازبینی باشد.");
narration.ReviewDate = DateTime.Now;
narration.ReviewerId = moderatorId;
narration.ReviewStatus = model.Approve ? AudioReviewStatus.Approved : AudioReviewStatus.Rejected;
if(!model.Approve)
if(model.Result != PoemNarrationModerationResult.MetadataNeedsFixation)
{
narration.ReviewStatus = model.Result == PoemNarrationModerationResult.Approve ? AudioReviewStatus.Approved : AudioReviewStatus.Rejected;
}
if (narration.ReviewStatus == AudioReviewStatus.Rejected)
{
narration.AudioSyncStatus = (int)AudioSyncStatus.SynchronizedOrRejected;
//TODO: delete rejected items files passed a certain period of time in a maintenance job
@ -529,7 +532,18 @@ namespace RMuseum.Services.Implementation
_context.AudioFiles.Update(narration);
await _context.SaveChangesAsync();
if(narration.ReviewStatus == AudioReviewStatus.Rejected)
if (model.Result == PoemNarrationModerationResult.MetadataNeedsFixation)
{
await _notificationService.PushNotification
(
narration.OwnerId,
"نیاز به بررسی خوانش ارسالی",
$"خوانش شما بررسی شده و نیاز به اعمال تغییرات دارد.{Environment.NewLine}" +
$"می‌توانید با مراجعه به این صفحه TODO: client url وضعیت آن را بررسی کنید."
);
}
else
if (narration.ReviewStatus == AudioReviewStatus.Rejected)
{
await _notificationService.PushNotification
(
@ -539,7 +553,7 @@ namespace RMuseum.Services.Implementation
$"می‌توانید با مراجعه به این صفحه TODO: client url وضعیت آن را بررسی کنید."
);
}
else
else //approved:
{
_backgroundTaskQueue.QueueBackgroundWorkItem
(