Exemplo n.º 1
0
        public async Task UpdateMoveRequestAsync(string currentUserId, string id, MoveRequestUpdateModel moveRequestUpdateModel)
        {
            var moveRequest = await GetMoveRequestAsync(id);

            if (moveRequest == null)
            {
                throw new ArgumentException("The move request doesn't exist", nameof(id));
            }

            if (moveRequest.UserId == currentUserId)
            {
                throw new UnauthorizedAccessException("Your are not the user of this move request");
            }

            var update = Builders <MoveRequest> .Update
                         .Set(dbMoveRequest => dbMoveRequest.UserId, moveRequestUpdateModel.UserId)
                         .Set(dbMoveRequest => dbMoveRequest.Title, moveRequestUpdateModel.Title)
                         .Set(dbMoveRequest => dbMoveRequest.MoveRequestVolume, moveRequestUpdateModel.MoveRequestVolume)
                         .Set(dbMoveRequest => dbMoveRequest.NeedFurnitures, moveRequestUpdateModel.NeedFurnitures)
                         .Set(dbMoveRequest => dbMoveRequest.NeedAssembly, moveRequestUpdateModel.NeedAssembly)
                         .Set(dbMoveRequest => dbMoveRequest.NeedDiassembly, moveRequestUpdateModel.NeedDiassembly)
                         .Set(dbMoveRequest => dbMoveRequest.MinimumRequestDate, moveRequestUpdateModel.MinimumRequestDate)
                         .Set(dbMoveRequest => dbMoveRequest.MaximumRequestDate, moveRequestUpdateModel.MaximumRequestDate)
                         .Set(dbMoveRequest => dbMoveRequest.HeavyFurnitures, moveRequestUpdateModel.HeavyFurnitures)
                         .Set(dbMoveRequest => dbMoveRequest.AdditionalInformation, moveRequestUpdateModel.AdditionalInformation);

            await _moveRequests.UpdateOneAsync(dbMoveRequest =>
                                               dbMoveRequest.Id == id,
                                               update
                                               );
        }
Exemplo n.º 2
0
        public async Task <IActionResult> UpdateMoveRequest(string id, [FromBody] MoveRequestUpdateModel toUpdate)
        {
            var currentUserId = User.Identity.Name;

            try
            {
                await _moveRequestsService.UpdateMoveRequestAsync(currentUserId, id, toUpdate);

                return(Ok());
            }
            catch (UnauthorizedAccessException e)
            {
                return(Forbid($"Can't update the move request: {e.Message}"));
            }
            catch (Exception e)
            {
                return(BadRequest($"Can't update the move request: {e.Message}"));
            }
        }