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 ); }
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}")); } }