/// <summary> /// return groups of nannies acording to their distance /// </summary> /// <param name="mo"></param> /// <returns></returns> public IEnumerable <IGrouping <int, Nanny> > Distance(Mother mo, myEnum.TipeOfTravel tipeOfTravel) { IEnumerable <IGrouping <int, Nanny> > query = from nan in getListOfNannies() group nan by CalculateDistance(tipeOfTravel, mo.searchArea, nan.Address) / 5; return(query); }
/// <summary> /// calculate distance from source to destenation using google maps /// </summary> /// <param name="source"></param> /// <param name="dest"></param> /// <returns></returns> /// public static int CalculateDistance(myEnum.TipeOfTravel tipeOfTravel, string source, string dest) { var drivingDirectionRequest = new DirectionsRequest { TravelMode = tipeOfTravel == myEnum.TipeOfTravel.walking ? TravelMode.Walking : TravelMode.Driving, Origin = source, Destination = dest, }; DirectionsResponse drivingDirections = GoogleMaps.Directions.Query(drivingDirectionRequest); Route route = drivingDirections.Routes.First(); Leg leg = route.Legs.First(); return(leg.Distance.Value); }