public ActionResult <VehicleFeedInfosFollow> FleetVehicleInfos(string token) { DateTimeOffset fromTime; DateTimeOffset toTime = DateTimeOffset.Now.ToUniversalTime(); if (string.IsNullOrEmpty(token)) { //TODO: When null, should be set to 'now' //for the demo, set start time = 5/1/19 fromTime = new DateTimeOffset(2019, 05, 01, 0, 0, 0, 0, TimeSpan.FromHours(0)).ToUniversalTime(); } else { string strFromTime = m_dataProtector.Unprotect(token); if (!DateTimeOffset.TryParse(strFromTime, out fromTime)) { return(BadRequest("token parameter invalid")); } } var vfif = new VehicleFeedInfosFollow(); vfif.token = m_dataProtector.Protect(toTime.ToString()); LocationHistory locHistory = GetCourseLocationHistory(fromTime.DateTime, toTime.DateTime, true); List <VehicleFaultCodeEvent> flaggedEventHistory = m_Context.VehicleFaultCodeEvent.Where( x => x.triggerDate >= fromTime && x.triggerDate <= toTime && x.urgentFlag == true).ToList(); List <VehiclePerformanceEvent> performanceEventHistory = m_Context.VehiclePerformanceEvent .Include(VehiclePerformanceThreshold => VehiclePerformanceThreshold.thresholds) .Where( x => x.eventStart >= fromTime && x.eventStart <= toTime).ToList(); List <VehicleFaultCodeEvent> vehicleFaultCodeEventHistory = m_Context.VehicleFaultCodeEvent.Where( x => x.triggerDate >= fromTime && x.triggerDate <= toTime).ToList(); VehicleInfoHistory history = new VehicleInfoHistory { coarseVehicleLocationTimeHistories = locHistory, flaggedVehicleFaultEvents = VehicleFaultCodeListToModelList(flaggedEventHistory), vehiclePerformanceEvents = VehiclePerformanceListToModelList(performanceEventHistory), vehicleFaultCodeEvents = VehicleFaultCodeListToModelList(vehicleFaultCodeEventHistory) }; vfif.feed = history; return(vfif); }
public ActionResult <VehicleInfoHistory> FleetVehicleInfos(string startTime, string stopTime) { if (!DateTime.TryParse(startTime, null, System.Globalization.DateTimeStyles.RoundtripKind, out DateTime startDate)) { return(BadRequest("Invalid startTime")); } if (!DateTime.TryParse(stopTime, null, System.Globalization.DateTimeStyles.RoundtripKind, out DateTime stopDate)) { return(BadRequest("Invalid stopTime")); } LocationHistory locHistory = GetCourseLocationHistory(startDate, stopDate, true); List <VehicleFaultCodeEvent> flaggedEventHistory = m_Context.VehicleFaultCodeEvent.Where( x => x.triggerDate >= startDate && x.triggerDate <= stopDate && x.urgentFlag == true).ToList(); List <VehiclePerformanceEvent> performanceEventHistory = m_Context.VehiclePerformanceEvent .Include(VehiclePerformanceThreshold => VehiclePerformanceThreshold.thresholds) .Where( x => x.eventStart >= startDate && x.eventStart <= stopDate).ToList(); List <VehicleFaultCodeEvent> vehicleFaultCodeEventHistory = m_Context.VehicleFaultCodeEvent.Where( x => x.triggerDate >= startDate && x.triggerDate <= stopDate).ToList(); VehicleInfoHistory result = new VehicleInfoHistory { coarseVehicleLocationTimeHistories = locHistory, flaggedVehicleFaultEvents = VehicleFaultCodeListToModelList(flaggedEventHistory), vehiclePerformanceEvents = VehiclePerformanceListToModelList(performanceEventHistory), vehicleFaultCodeEvents = VehicleFaultCodeListToModelList(vehicleFaultCodeEventHistory) }; return(result); }