public async Task <ICollection <AddressAM> > GetNearestAddresses(AddressKind kind, Coordinate originCoordinate, double distance = 500, int maxResultCount = 5) { var coordinateBounds = await DirectionService.GetCoordinateBounds(originCoordinate, distance); var domainAddresses = await DomainAddressService.GetByCoordinateBounds( kind, coordinateBounds.MinLatitude, coordinateBounds.MinLongitude, coordinateBounds.MaxLatitude, coordinateBounds.MaxLongitude); var nearestDomainAddresses = new List <Address>(); if (domainAddresses.Any()) { var nearestCoordinates = await DirectionService.GetNearestCoordinates(originCoordinate, domainAddresses.Select(a => a.ToCoordinate()), maxResultCount); foreach (var coordinate in nearestCoordinates) { var domainAddress = domainAddresses.First(a => a.Latitude.Equals(coordinate.Latitude) && a.Longitude.Equals(coordinate.Longitude)); nearestDomainAddresses.Add(domainAddress); } } return(FromDomainAddresses(nearestDomainAddresses)); }
public async Task <Address> GetOrCreateDomainAddress(AddressAM address) { var result = await DomainAddressService.GetByCoordinate(address.Latitude, address.Longitude); if (result == null) { result = await CreateDomainAddress(AddressKind.Other, address); } return(result); }
public Task <Address> CreateDomainAddress(AddressKind kind, AddressAM address) { return(DomainAddressService.Create( kind, address.Request, address.Country, address.Province, address.Area, address.Locality, address.District, address.Street, address.House, address.Latitude, address.Longitude, address.AdjustedLatitude, address.AdjustedLongitude)); }
public Task <string> GetShortTitle(int addressId) { return(DomainAddressService.GetShortTitle(addressId)); }
public Task <Address> GetDomainAddress(int addressId) { return(DomainAddressService.Get(addressId)); }
public Task <Address> GetDomainAddressByCoordinate(Coordinate coordinate) { return(DomainAddressService.GetByCoordinate(coordinate.Latitude, coordinate.Longitude)); }