fixes and improvements on updating narrations

This commit is contained in:
Hamid Reza Mohammadi 2020-11-08 17:48:26 +03:30
parent bc8cb1c465
commit d25050750e
5 changed files with 11 additions and 90 deletions

View File

@ -173,10 +173,10 @@ namespace RMuseum.Controllers
[HttpPut("{id}")]
[Authorize]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(PoemNarrationUpdateViewModel))]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(PoemNarrationViewModel))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
[ProducesResponseType((int)HttpStatusCode.Forbidden, Type = typeof(string))]
public async Task<IActionResult> UpdatePoemNarration(int id, [FromBody] PoemNarrationUpdateViewModel metadata)
public async Task<IActionResult> UpdatePoemNarration(int id, [FromBody] PoemNarrationViewModel metadata)
{
Guid loggedOnUserId = new Guid(User.Claims.FirstOrDefault(c => c.Type == "UserId").Value);
@ -214,7 +214,7 @@ namespace RMuseum.Controllers
/// <returns></returns>
[HttpPut("moderate/{id}")]
[Authorize(Policy = RMuseumSecurableItem.AudioNarrationEntityShortName + ":" + RMuseumSecurableItem.ModerateOperationShortName)]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(PoemNarrationUpdateViewModel))]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(bool))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
[ProducesResponseType((int)HttpStatusCode.Forbidden, Type = typeof(string))]
public async Task<IActionResult> ModeratePoemNarration(int id, [FromBody] PoemNarrationModerateViewModel model)

View File

@ -1,41 +0,0 @@
namespace RMuseum.Models.GanjoorAudio.ViewModels
{
/// <summary>
/// Poem Narration View Model for updates
/// </summary>
public class PoemNarrationUpdateViewModel
{
/// <summary>
/// Audio Title
/// </summary>
public string AudioTitle { get; set; }
/// <summary>
/// Audio Artist
/// </summary>
public string AudioArtist { get; set; }
/// <summary>
/// Audio Artist Url
/// </summary>
public string AudioArtistUrl { get; set; }
/// <summary>
/// Audio Source
/// </summary>
public string AudioSrc { get; set; }
/// <summary>
/// Audio Src Url
/// </summary>
public string AudioSrcUrl { get; set; }
/// <summary>
/// Review Status
/// </summary>
/// <remarks>
/// changing from Draft => Pending or Pending => Draft is possible for owner, other changes need narration::moderate permission
/// </remarks>
public AudioReviewStatus ReviewStatus { get; set; }
}
}

View File

@ -664,7 +664,7 @@
<param name="id">narration id</param>
<returns></returns>
</member>
<member name="M:RMuseum.Controllers.AudioNarrationController.UpdatePoemNarration(System.Int32,RMuseum.Models.GanjoorAudio.ViewModels.PoemNarrationUpdateViewModel)">
<member name="M:RMuseum.Controllers.AudioNarrationController.UpdatePoemNarration(System.Int32,RMuseum.Models.GanjoorAudio.ViewModels.PoemNarrationViewModel)">
<summary>
updates narration metadata
</summary>
@ -2061,44 +2061,6 @@
Rejection Message
</summary>
</member>
<member name="T:RMuseum.Models.GanjoorAudio.ViewModels.PoemNarrationUpdateViewModel">
<summary>
Poem Narration View Model for updates
</summary>
</member>
<member name="P:RMuseum.Models.GanjoorAudio.ViewModels.PoemNarrationUpdateViewModel.AudioTitle">
<summary>
Audio Title
</summary>
</member>
<member name="P:RMuseum.Models.GanjoorAudio.ViewModels.PoemNarrationUpdateViewModel.AudioArtist">
<summary>
Audio Artist
</summary>
</member>
<member name="P:RMuseum.Models.GanjoorAudio.ViewModels.PoemNarrationUpdateViewModel.AudioArtistUrl">
<summary>
Audio Artist Url
</summary>
</member>
<member name="P:RMuseum.Models.GanjoorAudio.ViewModels.PoemNarrationUpdateViewModel.AudioSrc">
<summary>
Audio Source
</summary>
</member>
<member name="P:RMuseum.Models.GanjoorAudio.ViewModels.PoemNarrationUpdateViewModel.AudioSrcUrl">
<summary>
Audio Src Url
</summary>
</member>
<member name="P:RMuseum.Models.GanjoorAudio.ViewModels.PoemNarrationUpdateViewModel.ReviewStatus">
<summary>
Review Status
</summary>
<remarks>
changing from Draft => Pending or Pending => Draft is possible for owner, other changes need narration::moderate permission
</remarks>
</member>
<member name="T:RMuseum.Models.GanjoorAudio.ViewModels.PoemNarrationViewModel">
<summary>
Poem Narration view model
@ -4013,7 +3975,7 @@
<param name="id">narration id</param>
<returns></returns>
</member>
<member name="M:RMuseum.Services.IAudioNarrationService.UpdatePoemNarration(System.Int32,RMuseum.Models.GanjoorAudio.ViewModels.PoemNarrationUpdateViewModel)">
<member name="M:RMuseum.Services.IAudioNarrationService.UpdatePoemNarration(System.Int32,RMuseum.Models.GanjoorAudio.ViewModels.PoemNarrationViewModel)">
<summary>
updates metadata for narration
</summary>
@ -4831,7 +4793,7 @@
<param name="id">narration id</param>
<returns></returns>
</member>
<member name="M:RMuseum.Services.Implementation.AudioNarrationService.UpdatePoemNarration(System.Int32,RMuseum.Models.GanjoorAudio.ViewModels.PoemNarrationUpdateViewModel)">
<member name="M:RMuseum.Services.Implementation.AudioNarrationService.UpdatePoemNarration(System.Int32,RMuseum.Models.GanjoorAudio.ViewModels.PoemNarrationViewModel)">
<summary>
updates metadata for narration
</summary>

View File

@ -43,7 +43,7 @@ namespace RMuseum.Services
/// <param name="id"></param>
/// <param name="metadata"></param>
/// <returns></returns>
Task<RServiceResult<bool>> UpdatePoemNarration(int id, PoemNarrationUpdateViewModel metadata);
Task<RServiceResult<PoemNarrationViewModel>> UpdatePoemNarration(int id, PoemNarrationViewModel metadata);
/// <summary>
/// imports narration data from ganjoor MySql database

View File

@ -142,13 +142,13 @@ namespace RMuseum.Services.Implementation
/// <param name="id"></param>
/// <param name="metadata"></param>
/// <returns></returns>
public async Task<RServiceResult<bool>> UpdatePoemNarration(int id, PoemNarrationUpdateViewModel metadata)
public async Task<RServiceResult<PoemNarrationViewModel>> UpdatePoemNarration(int id, PoemNarrationViewModel metadata)
{
try
{
PoemNarration narration = await _context.AudioFiles.Where(a => a.Id == id).SingleOrDefaultAsync();
if(narration == null)
return new RServiceResult<bool>(false, "404");
return new RServiceResult<PoemNarrationViewModel>(null, "404");
narration.AudioTitle = metadata.AudioTitle;
narration.AudioArtist = metadata.AudioArtist;
narration.AudioArtistUrl = metadata.AudioArtistUrl;
@ -157,11 +157,11 @@ namespace RMuseum.Services.Implementation
narration.ReviewStatus = metadata.ReviewStatus;
_context.AudioFiles.Update(narration);
await _context.SaveChangesAsync();
return new RServiceResult<bool>(true);
return new RServiceResult<PoemNarrationViewModel>(new PoemNarrationViewModel(narration, null, null));
}
catch (Exception exp)
{
return new RServiceResult<bool>(false, exp.ToString());
return new RServiceResult<PoemNarrationViewModel>(null, exp.ToString());
}
}