Ejemplo n.º 1
0
        public async Task <bool> UpdateAddress(DTOAddress address)
        {
            Address mapAddress = _mapper.Map <Address>(address);

            _addressRepository.Update(mapAddress);

            bool success = true;

            try
            {
                await _addressRepository.SaveChanges();
            }
            catch
            {
                if (!_addressRepository.AddressExists(address.AddressID))
                {
                    success = false;
                }
                else
                {
                    throw;
                }
            }

            return(success);
        }
        public DTOResponse <DTOAddress> GeocodeAddress(DTOAddress address)
        {
            DTOAddress result;

            var geocodeAddressResult = _googlePlaces.GeocodeAddress(address.Country, address.State, address.City, address.Street, address.Number, address.PostalCode);

            if (geocodeAddressResult.Code != 200)
            {
                return(new DTOResponse <DTOAddress>()
                {
                    Code = 400,
                    Message = geocodeAddressResult.Message
                });
            }

            result = new DTOAddress()
            {
                Street     = geocodeAddressResult.Data.Results.FirstOrDefault()?.AddressComponents?.Where(aC => aC.Types.Contains(AddressComponentType.Street_Address) || aC.Types.Contains(AddressComponentType.Route))?.FirstOrDefault()?.LongName ?? "",
                City       = geocodeAddressResult.Data.Results.FirstOrDefault()?.AddressComponents?.Where(aC => aC.Types.Contains(AddressComponentType.Administrative_Area_Level_2))?.FirstOrDefault()?.ShortName ?? "",
                Country    = geocodeAddressResult.Data.Results.FirstOrDefault()?.AddressComponents?.Where(aC => aC.Types.Contains(AddressComponentType.Country))?.FirstOrDefault()?.LongName ?? "",
                Number     = geocodeAddressResult.Data.Results.FirstOrDefault()?.AddressComponents?.Where(aC => aC.Types.Contains(AddressComponentType.Street_Number))?.FirstOrDefault()?.LongName ?? "",
                PostalCode = geocodeAddressResult.Data.Results.FirstOrDefault()?.AddressComponents?.Where(aC => aC.Types.Contains(AddressComponentType.Postal_Code))?.FirstOrDefault()?.LongName ?? "",
                State      = geocodeAddressResult.Data.Results.FirstOrDefault()?.AddressComponents?.Where(aC => aC.Types.Contains(AddressComponentType.Administrative_Area_Level_1))?.FirstOrDefault()?.ShortName ?? "",
                Latitude   = geocodeAddressResult.Data.Results.FirstOrDefault()?.Geometry?.Location?.Latitude.ToString() ?? "",
                Longitude  = geocodeAddressResult.Data.Results.FirstOrDefault()?.Geometry?.Location?.Longitude.ToString() ?? "",
            };

            return(new DTOResponse <DTOAddress>()
            {
                Code = 200,
                Data = result
            });
        }
Ejemplo n.º 3
0
        public async Task <ActionResult <DTOAddress> > GetAddress(int id)
        {
            DTOAddress address = await _service.GetAddress(id);

            if (address == null)
            {
                return(NotFound());
            }

            return(address);
        }
Ejemplo n.º 4
0
        public async Task <ActionResult <DTOAddress> > AddAddress(DTOAddress address)
        {
            bool success = await _service.AddAddress(address);

            if (success)
            {
                return(CreatedAtAction("GetAddress", new { id = address.AddressID }, address));
            }
            else
            {
                return(BadRequest());
            }
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> UpdateAddress(DTOAddress address)
        {
            bool success = await _service.UpdateAddress(address);

            if (success)
            {
                return(Ok());
            }
            else
            {
                return(NotFound());
            }
        }
Ejemplo n.º 6
0
        public async Task <bool> AddAddress(DTOAddress address)
        {
            Address mapAddress = _mapper.Map <Address>(address);

            _addressRepository.Add(mapAddress);
            bool success = true;

            try
            {
                await _addressRepository.SaveChanges();
            }
            catch (Exception e)
            {
                success = false;
            }

            return(success);
        }
Ejemplo n.º 7
0
 public DTOResponse <DTOAddress> GeocodePlace(DTOAddress address)
 {
     return(_domain.GeocodeAddress(address));
 }