public async Task <IActionResult> TravelTime(AirportCode model) { TravelTimeViewModel travel = new TravelTimeViewModel(); travel.Location = model.Location; travel.ArriveBy = model.ArriveBy; string time = Request.Form["time"]; model.Code = Request.Form["airport"]; var tsaWaitTime = await _airportClient.GetAirport(model.Code); travel.Code = model.Code; travel.TSAWaitTime = tsaWaitTime.rightnow / 60; string hourMin = time.Substring(0, 5); time = DateTime.Parse(hourMin).ToString("h:mm tt"); model.Time = Convert.ToDateTime(time); travel.Time = model.Time.ToString("h:mm tt"); DirectionsRequest request = new DirectionsRequest(); request.Key = "AIzaSyAD_-v70Gc1IQ2mfHkKTjCYBINKMlQ4I8I"; request.Origin = new Location(model.Location); request.Destination = new Location(model.Code); var response = GoogleApi.GoogleMaps.Directions.Query(request); double duration = response.Routes.First().Legs.First().Duration.Value / 3600D; travel.TotalTravelTime = duration + travel.TSAWaitTime; TimeSpan tt = TimeSpan.FromHours((duration)); travel.DriveTime = tt.Hours.ToString("00") + " hours" + " and" + tt.Minutes.ToString(" 00") + " minutes"; if (model.ArriveBy) { DateTime arriveByTime = model.Time; DateTime updatedTime = arriveByTime.AddHours(-(travel.TotalTravelTime)); travel.LeaveTime = updatedTime.ToString("h:mm tt"); } else { DateTime arriveByTime = model.Time; DateTime updatedTime = arriveByTime.AddHours((travel.TotalTravelTime)); travel.LeaveTime = updatedTime.ToString("h:mm tt"); } ; return(View(travel)); }
private void InitTravelTime() { TravelTimeDisplay = new TravelTimeViewModel(); TravelTime = new TravelTimeModel(TravelTimeDisplay); TravelTime.UpdateTravelTime(SmartMirror.Settings.HomeAddress, SmartMirror.Settings.WorkAddress); }