public Task<Address> CreateAddressAsync(Address address)
 {
     return Task.Run(() =>
     {
         address.Id = Guid.NewGuid().ToString();
         _dbContext.Addresses.Add(address);
         return address;
     });
 }
 public Task<Address> UpdateAddressAsync(Address address)
 {
     return Task.Run(() =>
     {
         if (string.IsNullOrEmpty(address.Id)) address.Id = Guid.NewGuid().ToString();
         _dbContext.Addresses.AddOrUpdate(address);
         return address;
     });
 }
 public async Task<IHttpActionResult> PutAddressAsync(Address address)
 {
     try
     {
         if (address == null) return BadRequest();
         address = await _repository.UpdateAddressAsync(address);
         if (address == null) return InternalServerError();
         return Ok(address);
     }
     catch (Exception exception)
     {
         this.Logger.LogError(exception.ToString());
         return InternalServerError();
     }
 }