fixes and changes on narration moderation
This commit is contained in:
parent
ac77196997
commit
fe1fdaee77
@ -179,10 +179,7 @@ namespace RMuseum.Controllers
|
|||||||
[ProducesResponseType((int)HttpStatusCode.Forbidden, Type = typeof(string))]
|
[ProducesResponseType((int)HttpStatusCode.Forbidden, Type = typeof(string))]
|
||||||
public async Task<IActionResult> UpdatePoemNarration(int id, [FromBody] PoemNarrationViewModel metadata)
|
public async Task<IActionResult> UpdatePoemNarration(int id, [FromBody] PoemNarrationViewModel metadata)
|
||||||
{
|
{
|
||||||
if (metadata.ReviewStatus == AudioReviewStatus.Approved || metadata.ReviewStatus == AudioReviewStatus.Rejected)
|
|
||||||
{
|
|
||||||
return StatusCode((int)HttpStatusCode.Forbidden);
|
|
||||||
}
|
|
||||||
|
|
||||||
Guid loggedOnUserId = new Guid(User.Claims.FirstOrDefault(c => c.Type == "UserId").Value);
|
Guid loggedOnUserId = new Guid(User.Claims.FirstOrDefault(c => c.Type == "UserId").Value);
|
||||||
|
|
||||||
@ -215,6 +212,14 @@ namespace RMuseum.Controllers
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(narration.Result.ReviewStatus != metadata.ReviewStatus)
|
||||||
|
{
|
||||||
|
if (metadata.ReviewStatus == AudioReviewStatus.Approved || metadata.ReviewStatus == AudioReviewStatus.Rejected)
|
||||||
|
{
|
||||||
|
return StatusCode((int)HttpStatusCode.Forbidden);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var res = await _audioService.UpdatePoemNarration(id, metadata);
|
var res = await _audioService.UpdatePoemNarration(id, metadata);
|
||||||
if (!string.IsNullOrEmpty(res.ExceptionString))
|
if (!string.IsNullOrEmpty(res.ExceptionString))
|
||||||
return BadRequest(res.ExceptionString);
|
return BadRequest(res.ExceptionString);
|
||||||
@ -230,7 +235,7 @@ namespace RMuseum.Controllers
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPut("moderate/{id}")]
|
[HttpPut("moderate/{id}")]
|
||||||
[Authorize(Policy = RMuseumSecurableItem.AudioNarrationEntityShortName + ":" + RMuseumSecurableItem.ModerateOperationShortName)]
|
[Authorize(Policy = RMuseumSecurableItem.AudioNarrationEntityShortName + ":" + RMuseumSecurableItem.ModerateOperationShortName)]
|
||||||
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(bool))]
|
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(PoemNarrationViewModel))]
|
||||||
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
|
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
|
||||||
[ProducesResponseType((int)HttpStatusCode.Forbidden, Type = typeof(string))]
|
[ProducesResponseType((int)HttpStatusCode.Forbidden, Type = typeof(string))]
|
||||||
public async Task<IActionResult> ModeratePoemNarration(int id, [FromBody] PoemNarrationModerateViewModel model)
|
public async Task<IActionResult> ModeratePoemNarration(int id, [FromBody] PoemNarrationModerateViewModel model)
|
||||||
|
|||||||
@ -88,7 +88,7 @@ namespace RMuseum.Services
|
|||||||
/// <param name="moderatorId"></param>
|
/// <param name="moderatorId"></param>
|
||||||
/// <param name="model"></param>
|
/// <param name="model"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<RServiceResult<bool>> ModeratePoemNarration(int id, Guid moderatorId, PoemNarrationModerateViewModel model);
|
Task<RServiceResult<PoemNarrationViewModel>> ModeratePoemNarration(int id, Guid moderatorId, PoemNarrationModerateViewModel model);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get Upload Session (including files)
|
/// Get Upload Session (including files)
|
||||||
|
|||||||
@ -717,15 +717,15 @@ namespace RMuseum.Services.Implementation
|
|||||||
/// <param name="moderatorId"></param>
|
/// <param name="moderatorId"></param>
|
||||||
/// <param name="model"></param>
|
/// <param name="model"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<RServiceResult<bool>> ModeratePoemNarration(int id, Guid moderatorId, PoemNarrationModerateViewModel model)
|
public async Task<RServiceResult<PoemNarrationViewModel>> ModeratePoemNarration(int id, Guid moderatorId, PoemNarrationModerateViewModel model)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
PoemNarration narration = await _context.AudioFiles.Where(a => a.Id == id).SingleOrDefaultAsync();
|
PoemNarration narration = await _context.AudioFiles.Include(a => a.Owner).Where(a => a.Id == id).SingleOrDefaultAsync();
|
||||||
if (narration == null)
|
if (narration == null)
|
||||||
return new RServiceResult<bool>(false, "404");
|
return new RServiceResult<PoemNarrationViewModel>(null, "404");
|
||||||
if (narration.ReviewStatus != AudioReviewStatus.Pending)
|
if (narration.ReviewStatus != AudioReviewStatus.Draft || narration.ReviewStatus != AudioReviewStatus.Pending)
|
||||||
return new RServiceResult<bool>(false, "خوانش میبایست در وضعیت در انتظار بازبینی باشد.");
|
return new RServiceResult<PoemNarrationViewModel>(null, "خوانش میبایست در وضعیت پیشنویس یا در انتظار بازبینی باشد.");
|
||||||
narration.ReviewDate = DateTime.Now;
|
narration.ReviewDate = DateTime.Now;
|
||||||
narration.ReviewerId = moderatorId;
|
narration.ReviewerId = moderatorId;
|
||||||
if(model.Result != PoemNarrationModerationResult.MetadataNeedsFixation)
|
if(model.Result != PoemNarrationModerationResult.MetadataNeedsFixation)
|
||||||
@ -778,11 +778,11 @@ namespace RMuseum.Services.Implementation
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
return new RServiceResult<bool>(true);
|
return new RServiceResult<PoemNarrationViewModel>(new PoemNarrationViewModel(narration, narration.Owner, await _context.GanjoorPoems.Where(p => p.Id == narration.GanjoorPostId).SingleOrDefaultAsync()));
|
||||||
}
|
}
|
||||||
catch (Exception exp)
|
catch (Exception exp)
|
||||||
{
|
{
|
||||||
return new RServiceResult<bool>(false, exp.ToString());
|
return new RServiceResult<PoemNarrationViewModel>(null, exp.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user