public Directions getDirectionsFromAddresses(PickUpAddress pickUpAddress, ClientAddress ClientAddress) { Directions directions = new Directions(getStringFromAddress(pickUpAddress), getStringFromAddress(ClientAddress)); directions.ApiKey = options.GoogleMapsApiKey; return(directions); }
public void testGetClosestDepotLocation() { var responseMessageOne = new HttpResponseMessage(); responseMessageOne.Content = new StringContent("{\"destination_addresses\":[\"Village Way, Brighton BN1, United Kingdom\"],\"origin_addresses\":[\"Arts Rd, Falmer, Brighton BN1 9QN, United Kingdom\"],\"rows\":[{\"elements\":[{\"distance\":{\"text\":\"0.8 mi\",\"value\":2},\"duration\":{\"text\":\"4 min\",\"value\":235},\"status\":\"OK\"}]}],\"status\":\"OK\"}"); var responseMessageTwo = new HttpResponseMessage(); responseMessageTwo.Content = new StringContent("{\"destination_addresses\":[\"Village Way, Brighton BN1, United Kingdom\"],\"origin_addresses\":[\"Arts Rd, Falmer, Brighton BN1 9QN, United Kingdom\"],\"rows\":[{\"elements\":[{\"distance\":{\"text\":\"3.6 mi\",\"value\":10},\"duration\":{\"text\":\"4 min\",\"value\":235},\"status\":\"OK\"}]}],\"status\":\"OK\"}"); List <HttpResponseMessage> responses = new List <HttpResponseMessage>(); responses.Add(responseMessageOne); responses.Add(responseMessageTwo); TestGoogleMapsUtil googleMaps = new TestGoogleMapsUtil(responses); LocationService service = new LocationService(googleMaps); IList <PickUpAddress> addressList = new List <PickUpAddress>(); PickUpAddress depot1 = new PickUpAddress(); addressList.Add(depot1); PickUpAddress depot2 = new PickUpAddress(); addressList.Add(depot2); Center center = new Center(); center.lat = 1; center.lng = 1; var result = service.FindClosestDepotLocationForRoute(addressList, center); Assert.Equal(depot1, result.Result); }
public virtual async Task <RouteDetails> getRouteDurationAndOverallDistance(PickUpAddress depot, List <Delivery> deliveries) { string waypointsUriString = ""; foreach (Delivery delivery in deliveries) { waypointsUriString += DirectionsService.getStringFromAddressInLatLngFormat(delivery.Client.Address); waypointsUriString += "|"; } waypointsUriString = waypointsUriString.TrimEnd('|'); string depotUriString = DirectionsService.getStringFromAddressInLatLngFormat(depot); string uri = "https://maps.googleapis.com/maps/api/directions/json?origin=" + depotUriString + "&destination=" + depotUriString + "&waypoints=optimize:true|" + waypointsUriString; HttpResponseMessage response = await googleMaps.performGoogleMapsRequestAsync(uri); var jsonString = response.Content.ReadAsStringAsync().Result; JObject json = JObject.Parse(jsonString); var distanceObjects = json["routes"].Children()["legs"].Children()["distance"]; var distanceValues = distanceObjects.Select(ds => ds["value"]).Values <double>(); var overallDistanceInKm = Math.Round(distanceValues.Sum() / 1000, 2); var durationObjects = json["routes"].Children()["legs"].Children()["duration"]; var durationValues = durationObjects.Select(ds => ds["value"]).Values <double>(); var overallDurationInHours = Math.Round(durationValues.Sum() / 3600, 2); return(new RouteDetails(overallDistanceInKm, overallDurationInHours)); }
public async Task <IActionResult> Edit(int id, [Bind("ID,City,LineOne,LineTwo,PostCode,Default")] PickUpAddress pickUpAddress) { if (id != pickUpAddress.ID) { return(NotFound()); } if (ModelState.IsValid) { try { var addressEntity = _context.PickUpAddress.SingleOrDefault(a => a.ID == pickUpAddress.ID); addressEntity.LineOne = pickUpAddress.LineOne; addressEntity.LineTwo = pickUpAddress.LineTwo; addressEntity.City = pickUpAddress.City; addressEntity.PostCode = pickUpAddress.PostCode; _context.Update(addressEntity); _context.SaveChanges(); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!PickUpAddressExists(pickUpAddress.ID)) { return(NotFound()); } else { throw; } } return(RedirectToAction("Index")); } return(View(pickUpAddress)); }
public static PickUpAddress getDeliveryPickUpAddress() { PickUpAddress pickUpAddress = new PickUpAddress(); pickUpAddress.LineOne = "LineOneData"; pickUpAddress.LineTwo = "LineTwoData"; pickUpAddress.City = "London"; pickUpAddress.PostCode = "LN2 3LN"; return(pickUpAddress); }
public void testGetDirections() { PickUpAddress pickUpAddress = new PickUpAddress("23 London Road", "Flat 2", "Brighton", "BN2 4PN"); ClientAddress clientAddress = new ClientAddress("25 London Road", "Flat 2", "Brighton", "BN2 4PN"); DirectionsService service = new DirectionsService(); service.options = new AppProperties(); Directions result = service.getDirectionsFromAddresses(pickUpAddress, clientAddress); Assert.Equal("23 London Road Flat 2 Brighton BN2 4PN", result.From); Assert.Equal("25 London Road Flat 2 Brighton BN2 4PN", result.To); }
public async Task <IActionResult> Create([Bind("ID,City,LineOne,LineTwo,PostCode,Default")] PickUpAddress pickUpAddress) { if (ModelState.IsValid) { await googleMaps.addLocationDataToAddress(pickUpAddress); company.PickUpLocations.Add(pickUpAddress); _context.Add(pickUpAddress); await _context.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(pickUpAddress)); }
private Address getAddress(bool driver) { Address address = null; if (driver) { address = new DriverAddress(); } else { address = new PickUpAddress(); } address.City = "City"; address.LineOne = "LineOne"; address.PostCode = "PostCode"; return(address); }
public async Task testGetRouteDurationAndOverallDistance() { var responseMessageOne = new HttpResponseMessage(); string jsonResult = "{\"geocoded_waypoints\":[],\"routes\":[{\"legs\":[{\"distance\":{\"text\":\"141 mi\",\"value\":200},\"duration\":{\"text\":\"1 h. 54 min.\",\"value\":3600}},{\"distance\":{\"text\":\"70 m\",\"value\":200},\"duration\":{\"text\":\"1 min.\",\"value\":3600}}]}]}"; responseMessageOne.Content = new StringContent(jsonResult); List <HttpResponseMessage> responses = new List <HttpResponseMessage>(); responses.Add(responseMessageOne); TestGoogleMapsUtil googleMaps = new TestGoogleMapsUtil(responses); LocationService service = new LocationService(googleMaps); List <Delivery> deliveries = new List <Delivery>(); PickUpAddress depot = new PickUpAddress(); RouteDetails result = await service.getRouteDurationAndOverallDistance(depot, deliveries); Assert.Equal(0.4, result.OverallDistance); Assert.Equal(2, result.OverallTimeRequired); }
private async Task populateContextWithData(ApplicationDbContext context) { Client client = new Client { Email = Constants.DEFAULT_EMAIL, FirstName = Constants.DEFAULT_NAME, LastName = Constants.DEFAULT_NAME }; ClientAddress clientAddress = new ClientAddress { LineOne = "Village Way", LineTwo = null, City = "Brighton", PostCode = "BN1 9BL" }; context.Addresses.Add(clientAddress); context.Clients.Add(client); client.Address = clientAddress; Delivery delivery = new Delivery(); delivery.DeliveryStatus = new DeliveryStatus { Status = Status.New }; PickUpAddress address = new PickUpAddress { LineOne = "72 Newmarket Street", LineTwo = null, City = "Brighton", PostCode = "BN2 3QF" }; context.Addresses.Add(address); delivery.Client = client; context.Deliveries.Add(delivery); await context.SaveChangesAsync(); }
public AddressDto(PickUpAddress address) : this(address as IAddress) { Name = address.Name; }