public async void ExecuteStopCommand() { EndDialog dialog = new EndDialog(); await dialog.ShowAsync(); if (dialog.DiagResult == ContentDialogResult.Primary) { CurrentTripDataRepo.DriveValue = EnumHelper.DeParse(DriveStateStatus.TripCompleted); if (SelectedTripData.IsTripComplete != true) { CurrentTripDataRepo.EndTime = DateTime.Now; upTimer.Stop(); TripSummary.SetBusy(true); SelectedTripData.TripEndTime = CurrentTripDataRepo.EndTime; SelectedTripData.IsTripComplete = true; SelectedTripData.Pay = CurrentTripDataRepo.SelectedPayStatus = dialog.SelectedPayStatus; SelectedTripData.Mode = CurrentTripDataRepo.SelectedPayMode = dialog.SelectedPayMode; tripDataManager.SaveTrip(SelectedTripData); } geoLocationService.PositionChanged -= GeoLocationService_PositionChanged; geoLocationService.StopListening(); StartCommand.RaiseCanExecuteChanged(); StopCommand.RaiseCanExecuteChanged(); GotoHomeTaskCommand.RaiseCanExecuteChanged(); } }
public override global::System.Data.DataSet Clone() { TripSummary cln = ((TripSummary)(base.Clone())); cln.InitVars(); cln.SchemaSerializationMode = this.SchemaSerializationMode; return(cln); }
public static TripSummary Optimize(IEnumerable <ScheduledVehicle> vehicles, IEnumerable <ScheduledTrip> trips) { var earliestStartVehicleTime = vehicles.Min(st => st.VehicleStart); var latestStopVehicleTime = vehicles.Max(st => st.VehicleEnd); var tripSummary = new TripSummary(); foreach (var trip in trips.OrderBy(ob => ob.ID)) { if (trip.StartDateTime < earliestStartVehicleTime || trip.EndDateTime > latestStopVehicleTime) { trip.Illegal = true; continue; } foreach (var vehicle in vehicles.OrderBy(ob => ob.ScheduledTrips.Count)) { //Check trip time against vehicle start time if (vehicle.VehicleStart > trip.StartDateTime || vehicle.VehicleEnd < trip.EndDateTime) { continue; } if (!vehicle.ScheduledTrips.Any() || vehicle.ScheduledTrips.Any(st => !trip.StartDateTime.InRange(st.StartDateTime, st.EndDateTime) && trip.StartDateTime >= st.EndDateTime)) { vehicle.ScheduledTrips.Add(trip); trip.VehicleID = vehicle.ID; break; } } if (trip.VehicleID == null) { trip.WaitList = true; } } foreach (var vehicle in vehicles) { var vehicleTrips = vehicle.ScheduledTrips.OrderBy(ob => ob.StartDateTime).ToList(); for (int i = 0; i < vehicleTrips.Count - 2; i++) { var currentTripEnd = vehicleTrips[i].EndDateTime; if ((vehicleTrips[i + 1].StartDateTime - currentTripEnd).Minutes > 20) { vehicle.VehicleBreaks.Add(new ScheduledVehicleBreak { StartDateTime = currentTripEnd, EndDateTime = currentTripEnd.AddMinutes(20) }); } } } tripSummary.Trips = trips; tripSummary.Vehicles = vehicles; return(tripSummary); }
public TripSummary CalculateTripSummary(List <Trip> trips) { var summary = new TripSummary { Summary = GetSummary(trips), DistanceHistogram = GetDistanceHistogram(trips), TimeHistogram = GetTimeHistogram(trips) }; return(summary); }
public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { TripSummary ds = new TripSummary(); global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); any.Namespace = ds.Namespace; sequence.Items.Add(any); type.Particle = sequence; global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); if (xs.Contains(dsSchema.TargetNamespace)) { global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); try { global::System.Xml.Schema.XmlSchema schema = null; dsSchema.Write(s1); for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext();) { schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); s2.SetLength(0); schema.Write(s2); if ((s1.Length == s2.Length)) { s1.Position = 0; s2.Position = 0; for (; ((s1.Position != s1.Length) && (s1.ReadByte() == s2.ReadByte()));) { ; } if ((s1.Position == s1.Length)) { return(type); } } } } finally { if ((s1 != null)) { s1.Close(); } if ((s2 != null)) { s2.Close(); } } } xs.Add(dsSchema); return(type); }
private List <TripSummary> LoadTrips(List <String> drivers) { var trips = new List <TripSummary>(); using (var rd = new StreamReader(@"..\..\testdata\TripSummaries.csv")) { // read the header rd.ReadLine(); while (!rd.EndOfStream) { var splits = rd.ReadLine().Split(','); if (splits.Length == 11) { var trip = new TripSummary(); trip.DriverId = splits[0].Trim(); if (drivers.Find(item => item.Equals(trip.DriverId)) == null) { drivers.Add(trip.DriverId); } trip.TripId = splits[1].Trim(); // ignore [2] -> Timestamp trip.Distance = double.Parse(splits[3].Trim(), CultureInfo.InvariantCulture); trip.Duration = double.Parse(splits[4].Trim(), CultureInfo.InvariantCulture); trip.EndLatitude = double.Parse(splits[5].Trim(), CultureInfo.InvariantCulture); trip.EndLongitude = double.Parse(splits[6].Trim(), CultureInfo.InvariantCulture); // ignore [7] -> EndTime trip.StartLatitude = double.Parse(splits[8].Trim(), CultureInfo.InvariantCulture); trip.StartLongitude = double.Parse(splits[9].Trim(), CultureInfo.InvariantCulture); trip.StartTime = DateTime.ParseExact(splits[10].Trim(), "d.M.yyyy HH:mm:ss", CultureInfo.InvariantCulture); trips.Add(trip); } } } return(trips); }
public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); TripSummary ds = new TripSummary(); global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); any1.Namespace = "http://www.w3.org/2001/XMLSchema"; any1.MinOccurs = new decimal(0); any1.MaxOccurs = decimal.MaxValue; any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; sequence.Items.Add(any1); global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; any2.MinOccurs = new decimal(1); any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; sequence.Items.Add(any2); global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); attribute1.Name = "namespace"; attribute1.FixedValue = ds.Namespace; type.Attributes.Add(attribute1); global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); attribute2.Name = "tableTypeName"; attribute2.FixedValue = "tripDataTable"; type.Attributes.Add(attribute2); type.Particle = sequence; global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); if (xs.Contains(dsSchema.TargetNamespace)) { global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); try { global::System.Xml.Schema.XmlSchema schema = null; dsSchema.Write(s1); for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext();) { schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); s2.SetLength(0); schema.Write(s2); if ((s1.Length == s2.Length)) { s1.Position = 0; s2.Position = 0; for (; ((s1.Position != s1.Length) && (s1.ReadByte() == s2.ReadByte()));) { ; } if ((s1.Position == s1.Length)) { return(type); } } } } finally { if ((s1 != null)) { s1.Close(); } if ((s2 != null)) { s2.Close(); } } } xs.Add(dsSchema); return(type); }