Exemplo n.º 1
0
        public async Task <ActionResult <GroupAlbumRatingDownloadModel> > EditGroupAlbumRatingAsync(
            GroupAlbumRatingUploadModel groupAlbumRatingUploadModel)
        {
            try
            {
                if (await IsUserValidAsync())
                {
                    var groupAlbumRating = await GroupAlbumRatingModel.EditGroupAlbumRatingAsync(
                        groupAlbumRatingUploadModel.GroupAlbumRatingId,
                        groupAlbumRatingUploadModel,
                        ExtractUserIdFromToken(),
                        RepositoryManager);

                    return(Ok(MapEntityToDownloadModel <GroupAlbumRating, GroupAlbumRatingDownloadModel>(groupAlbumRating)));
                }
                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());
            }
        }
Exemplo n.º 2
0
        public static async Task <GroupAlbumRating> EditGroupAlbumRatingAsync(
            Guid groupAlbumRatingId,
            GroupAlbumRatingUploadModel groupAlbumRatingUploadModel,
            Guid userId,
            IRepositoryManager repositoryManager)
        {
            try
            {
                var groupAlbumRating = await repositoryManager.GroupAlbumRatingRepository.GetByIdAsync(groupAlbumRatingId);

                if (groupAlbumRating != null)
                {
                    if (groupAlbumRating.CreatedBy == userId)
                    {
                        groupAlbumRating.OverallRating       = groupAlbumRatingUploadModel.OverallRating;
                        groupAlbumRating.LyricsRating        = groupAlbumRatingUploadModel.LyricsRating;
                        groupAlbumRating.VocalsRating        = groupAlbumRatingUploadModel.VocalsRating;
                        groupAlbumRating.InstrumentalsRating = groupAlbumRatingUploadModel.InstrumentalsRating;
                        groupAlbumRating.StructureRating     = groupAlbumRatingUploadModel.StructureRating;
                        groupAlbumRating.Comment             = groupAlbumRatingUploadModel.Comment;
                        groupAlbumRating.LastUpdatedOn       = DateTime.Now;
                        groupAlbumRating.LastUpdatedBy       = userId;

                        await repositoryManager.GroupAlbumRatingRepository.UpdateAsync(groupAlbumRating);

                        return(groupAlbumRating);
                    }
                    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 Album Rating was not found");
                }
            }
            catch (Exception)
            {
                throw;
            }
        }