public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("Start finding scooters"); try { var requestBody = await new StreamReader(req.Body).ReadToEndAsync(); TripLocation riderLocation = JsonConvert.DeserializeObject <TripLocation>(requestBody); // find all scooters around the rider location. Get data from cosmos db scooter collection var scooters = await _scooterService.FindScootersInRange(riderLocation.Longitude, riderLocation.Latitude, riderLocation.Distance); if (scooters.Any()) { return((ActionResult) new OkObjectResult(scooters)); } return(new NoContentResult()); } catch (Exception e) { log.LogError(e.Message); return(new BadRequestObjectResult("An error occured!")); } }
public async Task <List <TripLocation> > RetrieveRouteItems(TripLocation source, TripLocation destination) { //TODO: Add Bing API here var routeLocations = new List <TripLocation>(); var points = _rnd.Next(10); for (var i = 0; i < points; i++) { routeLocations.Add(source); } routeLocations.Add(destination); return(routeLocations); }
public static TripRouteModel CastTripRouteToModel(vwTripRoute vwTripRoute, TripLocation lastPoint, int userId) { var tr = new TripRouteModel(); tr.UserName = vwTripRoute.Name; tr.UserFamily = vwTripRoute.Family; tr.UserMobile = vwTripRoute.UserName; tr.PayPrice = vwTripRoute.RRPricingMinMax != null ? decimal.Parse(vwTripRoute.RRPricingMinMax.ToString()) : 0; tr.IsDriver = vwTripRoute.IsDrive; tr.IsMe = vwTripRoute.RouteRequestUserId == userId; tr.UserImageId = vwTripRoute.UserImageId; tr.Lat = lastPoint.TlLat.ToString(); tr.Lng = lastPoint.TlLng.ToString(); return(tr); }
public async Task AddLocation(string tripId, TripLocation location) { location.Created = DateTime.Now.GetLocalTimeTotalSeconds(); await Client.Child(Path).Child(tripId).Child(nameof(Trip.Locations)).PostAsync(location); }