public async Task <ActionResult <GroupPlaylistRatingDownloadModel> > EditGroupPlaylistRatingAsync( GroupPlaylistRatingUploadModel groupPlaylistRatingUploadModel) { try { if (await IsUserValidAsync()) { var groupPlaylistRating = await GroupPlaylistRatingModel.EditGroupPlaylistRatingAsync( groupPlaylistRatingUploadModel.GroupPlaylistRatingId, groupPlaylistRatingUploadModel, ExtractUserIdFromToken(), RepositoryManager); return(Ok(MapEntityToDownloadModel <GroupPlaylistRating, GroupPlaylistRatingDownloadModel>(groupPlaylistRating))); } else { return(Unauthorized()); } } catch (UserForbiddenException) { return(Forbid()); } catch (InvalidTokenException err) { return(BadRequest(new InvalidTokenException(err.InvalidTokenType, err.ErrorMessage))); } catch (Exception err) { LogException(err); return(Problem()); } }
public static async Task <GroupPlaylistRating> EditGroupPlaylistRatingAsync( Guid groupPlaylistRatingId, GroupPlaylistRatingUploadModel groupPlaylistRatingUploadModel, Guid userId, IRepositoryManager repositoryManager) { try { var groupPlaylistRating = await repositoryManager.GroupPlaylistRatingRepository.GetByIdAsync(groupPlaylistRatingId); if (groupPlaylistRating != null) { if (groupPlaylistRating.CreatedBy == userId) { groupPlaylistRating.OverallRating = groupPlaylistRatingUploadModel.OverallRating; groupPlaylistRating.Comment = groupPlaylistRatingUploadModel.Comment; groupPlaylistRating.LastUpdatedOn = DateTime.Now; groupPlaylistRating.LastUpdatedBy = userId; await repositoryManager.GroupPlaylistRatingRepository.UpdateAsync(groupPlaylistRating); return(groupPlaylistRating); } else { throw new UserForbiddenException( "You are not allowed to perform this action", "You are not allowed to perform this action"); } } else { throw new InvalidTokenException(InvalidTokenType.TokenNotFound, "The requested Group Playlist Rating was not found"); } } catch (Exception) { throw; } }