/// <summary> /// Creates tracking stops for the specified stops collection. /// </summary> /// <param name="deviceId">The object ID of the device to create stops for.</param> /// <param name="currentVersion">The version of stops to be created.</param> /// <param name="plannedDate">The date/time to create stops for.</param> /// <param name="routeStops">A collection of route stops sorted by their sequence /// number to create tracking stops for.</param> /// <returns>A collection of tracking stops corresponding to the specified route /// stops.</returns> private IEnumerable <DM.Stop> _CreateTrackingStops( long deviceId, int currentVersion, DateTime plannedDate, IList <Stop> routeStops) { Debug.Assert(routeStops != null); var propertyFilter = Functional.MakeLambda((string _) => true); var stopInfos = RouteExporter.ExportStops( routeStops, _project.CapacitiesInfo, _project.OrderCustomPropertiesInfo, _geocoder.AddressFields, _solver, propertyFilter).ToList(); var trackingStops = routeStops .Select((stop, index) => { var stopInfo = stopInfos[index]; var objectId = 0; var trackingStop = new DM.Stop { ObjectID = objectId, Version = currentVersion, // Name of the stop can exceed 50 chars, so we need to trim excess chars. Name = _TrimStringField(stopInfo.Name), Location = stopInfo.Location, OrderType = stopInfo.OrderType, Priority = stopInfo.Priority, CurbApproach = stopInfo.CurbApproach, Address = _ToCollection(stopInfo.Address), Capacities = _ToCollection(stopInfo.Capacities), CustomOrderProperties = _ToCollection(stopInfo.CustomOrderProperties), Type = _GetStopType(stop, routeStops), PlannedDate = plannedDate, DeviceID = deviceId, SequenceNumber = stop.SequenceNumber, ServiceTime = (int)stop.TimeAtStop, MaxViolationTime = stopInfo.MaxViolationTime, ArriveTime = stopInfo.ArriveTime.ToUniversalTime(), }; _FillTimeWindows(stop, plannedDate, trackingStop); return(trackingStop); }); return(trackingStops); }
public MainViewModel(INavigationService navigationService, RouteExporter routeExporter, PlaceExporter placeExporter, StepExporter stepExporter) { _navigationService = navigationService; _routeExporter = routeExporter; _placeExporter = placeExporter; _stepExporter = stepExporter; From = DateTime.Today; Until = DateTime.Today; Places = new ExportItemViewModel(); Routes = new ExportItemViewModel(); Steps = new ExportItemViewModel(); Export = new MultiDependentRelayCommand(DataTransferManager.ShowShareUI, IsExportEnabled, new CommandDependency(Routes, nameof(Routes.IsSelected), nameof(Routes.IsEnabled)), new CommandDependency(Places, nameof(Places.IsSelected), nameof(Places.IsEnabled)), new CommandDependency(Steps, nameof(Steps.IsSelected), nameof(Steps.IsEnabled))); ShareRequested = new RelayCommand<DataRequest>(OnShareRequested); Settings = new RelayCommand(()=> _navigationService.NavigateTo("Settings")); }