public async Task <IActionResult> Put([FromBody] BuildingUpdateDto buildingUpdateDto) { //Get header token if (Request.Headers.TryGetValue("Authorization", out StringValues headerValues)) { var token = _customEncoder.DecodeBearerAuth(headerValues.First()); if (token != null) { var user = await _userService.GetUserAsyncByToken(token); if (user != null) { //Verify if the token exist and is not expire if ((await _authenticationService.CheckIfTokenIsValidAsync(token) && user.IsAdmin == 1) || await _authenticationService.CheckIfTokenIsValidAsync(token, user.UserId)) { var buildingApiDto = await _buildingService.UpdateBuildingAsync(buildingUpdateDto); if (buildingApiDto == null) { return(StatusCode(404, "Unable to update building.")); } return(Ok(buildingApiDto)); } return(StatusCode(401, "Invalid token.")); } return(StatusCode(403, "Invalid user.")); } return(StatusCode(401, "Invalid authorization.")); } return(StatusCode(401, "Invalid authorization.")); }
/// <summary> /// Maps the building update dto to building. /// </summary> /// <returns>The building update dto to building.</returns> /// <param name="buildingUpdateDto">Building update dto.</param> /// <param name="building">Building.</param> public Building MapBuildingUpdateDtoToBuilding(BuildingUpdateDto buildingUpdateDto, Building building) { if (!string.IsNullOrEmpty(buildingUpdateDto.Address)) { building.Address = buildingUpdateDto.Address; } if (!string.IsNullOrEmpty(buildingUpdateDto.Address2)) { building.Address2 = buildingUpdateDto.Address2; } if (!string.IsNullOrEmpty(buildingUpdateDto.City)) { building.City = buildingUpdateDto.City; } if (!string.IsNullOrEmpty(buildingUpdateDto.City2)) { building.City2 = buildingUpdateDto.City2; } if (!string.IsNullOrEmpty(buildingUpdateDto.PostalCode)) { building.PostalCode = buildingUpdateDto.PostalCode; } if (!string.IsNullOrEmpty(buildingUpdateDto.Description)) { building.Description = buildingUpdateDto.Description; } if (!string.IsNullOrEmpty(buildingUpdateDto.Title)) { building.Title = buildingUpdateDto.Title; } building.IsRent = buildingUpdateDto.IsRent ?? building.IsRent; building.NbMaxRenters = buildingUpdateDto.NbMaxRenters ?? building.NbMaxRenters; building.NbPiece = buildingUpdateDto.NbPiece ?? building.NbPiece; building.NbRenters = buildingUpdateDto.NbRenters ?? building.NbRenters; building.NbRoom = buildingUpdateDto.NbRoom ?? building.NbRoom; building.Parking = buildingUpdateDto.Parking ?? building.Parking; building.Price = buildingUpdateDto.Price ?? building.Price; building.Type = buildingUpdateDto.Type ?? building.Type; building.Area = buildingUpdateDto.Area ?? building.Area; return(building); }
public IActionResult Put(Guid id, BuildingUpdateDto buildingUpdateDto) { var building = _repository.FindByIdWithAssociations(id); if (building == null) { return(NotFound()); } _mapper.Map(buildingUpdateDto, building); _repository.Update(building); if (_repository.SaveChanges()) { return(Ok(_mapper.Map <BuildingReadDto>(building))); } else { return(BadRequest()); } }
/// <summary> /// Updates the building async. /// </summary> /// <returns>The building async.</returns> /// <param name="buildingUpdateDto">Building update dto.</param> public async Task <BuildingApiDto> UpdateBuildingAsync(BuildingUpdateDto buildingUpdateDto) { return(await _dal.UpdateBuildingAsync(buildingUpdateDto)); }