public async Task <ActionResult <SaveAddressResource> > CreateCountry([FromBody] SaveAddressResource saveAddressResource)
        {
            var address = _mapper.Map <SaveAddressResource, Address>(saveAddressResource);

            address.TypeAddress = await _typeAddressService.GetTypeAddressById(saveAddressResource.TypeAddressId);

            var city = await _cityService.GetCityByName(saveAddressResource.CityName);

            var stateProvince = await _stateProvinceService.GetStateProvinceById(saveAddressResource.StateId);

            if (city != null && city.StateProvinceId == stateProvince.Id)
            {
                address.City   = city;
                address.CityId = city.Id;
            }
            else
            {
                var cityToAdd = new City();
                cityToAdd.Name            = saveAddressResource.CityName;
                cityToAdd.StateProvinceId = saveAddressResource.StateId;
                var cityAdded = await _cityService.CreateCity(cityToAdd);

                address.City   = cityAdded;
                address.CityId = cityAdded.Id;
            }
            address.Status = 1;
            var addressAdded = await _addressService.CreateAddress(address);

            var addressCreated = await _addressService.GetAddressById(addressAdded.Id);

            var token              = Request.Headers["Authorization"].ToString();
            var user               = new JwtSecurityTokenHandler().ReadJwtToken(token);
            var userId             = new Guid(user.Claims.ToArray()[0].Value.ToString());
            var userAddresListItem = new UserAddressList();

            userAddresListItem.UserId    = userId;
            userAddresListItem.AddressId = addressCreated.Id;
            userAddresListItem.Status    = 1;
            var addressListItemCreated = await _userAddressListService.CreateUserAddressListItem(userAddresListItem);

            if (addressListItemCreated == null)
            {
                BadRequest();
            }
            var addressResource = _mapper.Map <Address, AddressResource>(addressCreated);

            return(Ok(addressResource));
        }
        public async Task <ActionResult <AddressResource> > UpdateAddress(int id, [FromBody] SaveAddressResource saveAddressResource)
        {
            var addressToUpdate = await _addressService.GetAddressById(id);

            if (addressToUpdate == null)
            {
                return(NotFound());
            }
            var address = _mapper.Map <SaveAddressResource, Address>(saveAddressResource);
            var city    = await _cityService.GetCityByName(saveAddressResource.CityName);

            var stateProvince = await _stateProvinceService.GetStateProvinceById(saveAddressResource.StateId);

            if (city != null && city.StateProvinceId == stateProvince.Id)
            {
                address.City   = city;
                address.CityId = city.Id;
            }
            else
            {
                var cityToAdd = new City();
                cityToAdd.Name            = saveAddressResource.CityName;
                cityToAdd.StateProvinceId = saveAddressResource.StateId;
                var cityAdded = await _cityService.CreateCity(cityToAdd);

                address.City   = cityAdded;
                address.CityId = cityAdded.Id;
            }
            await _addressService.UpdateAddress(addressToUpdate, address);

            var addressUpdated = await _addressService.GetAddressById(id);

            var addressResource = _mapper.Map <Address, AddressResource>(addressUpdated);

            return(Ok(addressResource));
        }