public async Task UpdateHousingAsync(string currentUserId, string id, HousingUpdateModel housingUpdateModel) { var housing = await GetHousingAsync(id); if (housing == null) { throw new Exception("The housing doesn't exist"); } if (housing.UserId == currentUserId) { throw new UnauthorizedAccessException("Your are not allowed to update this housing"); } var update = Builders <Housing> .Update .Set(dbHousing => dbHousing.HousingType, housingUpdateModel.HousingType) .Set(dbHousing => dbHousing.HousingFloor, housingUpdateModel.HousingFloor) .Set(dbHousing => dbHousing.IsElevator, housingUpdateModel.IsElevator) .Set(dbHousing => dbHousing.Surface, housingUpdateModel.Surface) .Set(dbHousing => dbHousing.Adress, housingUpdateModel.Adress) .Set(dbHousing => dbHousing.Town, housingUpdateModel.Town) .Set(dbHousing => dbHousing.Zipcode, housingUpdateModel.Zipcode) .Set(dbHousing => dbHousing.Region, housingUpdateModel.Region) .Set(dbHousing => dbHousing.Country, housingUpdateModel.Country) .Set(dbHousing => dbHousing.State, housingUpdateModel.State) .Set(dbHousing => dbHousing.MoveRequestId, housingUpdateModel.MoveRequestId); await _housings.UpdateOneAsync(dbHousing => dbHousing.Id == id, update ); }
public async Task <IActionResult> UpdateHousing(string id, [FromBody] HousingUpdateModel housingUpdateModel) { var currentUserId = User.Identity.Name; try { await _housingsService.UpdateHousingAsync(currentUserId, id, housingUpdateModel); return(Ok()); } catch (UnauthorizedAccessException e) { return(Unauthorized($"Can't update the housin: {e.Message}")); } catch (Exception e) { return(BadRequest($"Can't update the housing: {e.Message}")); } }