public async Task <IActionResult> PutAddress(int id, AddressPutDTO addressPutDTO) { if (addressPutDTO == null) { throw new ArgumentNullException(nameof(addressPutDTO)); } if (id != addressPutDTO.Id) { return(BadRequest()); } var addressResult = await _addressRepository.PutAddress(id, addressPutDTO).ConfigureAwait(false); if (addressResult == null) { return(NotFound()); } return(NoContent()); }
public async Task <AddressPutDTO> PutAddress(int id, AddressPutDTO addressPutDTO) { // DTO objects don't exist in the context class and won't be recognized by EF so the code below will not work!!! //_context.Entry(address).State = EntityState.Modified; if (addressPutDTO == null) { throw new ArgumentNullException(nameof(addressPutDTO)); } try { Address address = await _context.Addresses.FirstOrDefaultAsync(a => a.Id == id).ConfigureAwait(false); address.Street = addressPutDTO.Street; address.Number = addressPutDTO.Number; address.Extension = addressPutDTO.Extension; address.PostalCode = addressPutDTO.PostalCode; address.City = addressPutDTO.City; await _context.SaveChangesAsync().ConfigureAwait(false); } catch (DbUpdateConcurrencyException) { if (!AddressExists(id)) { return(null); } else { throw; } } return(addressPutDTO); }