private void UpdateCalculatedDuration()
        {
            // TODO do this on the non-filtered list as soon as filtering is implemented
            int duration = TimeEvents.FilteredFullTimeEventList.Sum(x => x.ArrivalTime + x.WaitTime);

            ServiceTemplateDataAccess.UpdateServiceCalculatedDuration(duration, ServiceId);
        }
        public async Task Repeat()
        {
            ServiceId       = SelectedService.Id;
            ServiceTemplate = ServiceTemplateDataAccess.GetServiceTemplateById(SelectedService.ServiceTemplateId);
            ReviewServicesViewModel reviewVM = IoC.Get <ReviewServicesViewModel>();

            for (int i = 0; i < RepeatCount; i++)
            {
                var newService = new ServiceModel();
                newService.ServiceTemplateId = ServiceTemplate.Id;
                newService.ServiceName       = SelectedService.ServiceName;
                newService.StartTime         = SelectedService.StartTime + (i + 1) * TimeOffset;
                newService.EndTime           = SelectedService.EndTime + (i + 1) * TimeOffset;
                int    serviceNumber = NumberStart + i * NumberOffset;
                string offset        = serviceNumber.ToString($"D{Digits}");
                newService.ServiceAbbreviation = $"{ServiceTemplate.ServiceTemplateAbbreviation}{Separator}{offset}";
                reviewVM.CreatedServices.Add(newService);
            }

            reviewVM.CreatedServices = new BindableCollection <ServiceModel>(reviewVM.CreatedServices.OrderBy(x => x.StartTime));
            await _windowManager.ShowDialogAsync(reviewVM);

            if (reviewVM.IsSaved)
            {
                ServiceList = new BindableCollection <ServiceModel>(ServicesDataAccess
                                                                    .GetServicesPerRoute(RouteId).OrderBy(x => x.StartTime));
                NotifyOfPropertyChange(() => ServiceList);
            }
            NotifyOfPropertyChange(() => CanRepeat);
        }
Exemple #3
0
        public void SaveTimeEvents()
        {
            foreach (var item in FullTimeEventsList)
            {
                if (item.EventType?.Length > 0)
                {
                    var timeEvent = new TimeEventModel();
                    timeEvent.Id                = item.Id;
                    timeEvent.EventType         = item.EventType;
                    timeEvent.ArrivalTime       = item.ArrivalTime;
                    timeEvent.WaitTime          = item.WaitTime;
                    timeEvent.LocationId        = item.LocationId;
                    timeEvent.ServiceTemplateId = item.ServiceTemplateId;
                    timeEvent.Order             = item.Order;
                    if (item.Id > 0)
                    {
                        timeEvent.Id = item.Id;
                        TimeEventDataAccess.UpdateTimeEvent(timeEvent);
                    }
                    else
                    {
                        TimeEventDataAccess.InsertTimeEventForServiceTemplate(timeEvent);
                    }
                }
            }
            int duration = FullTimeEventsList.Sum(x => x.ArrivalTime + x.WaitTime);

            SelectedServiceTemplate.CalculatedDuration = duration;
            ServiceTemplateDataAccess.UpdateServiceCalculatedDuration(duration, SelectedServiceTemplate.Id);
            ServiceTemplateUI.ServiceTemplateList.Refresh();
            FullTimeEventsList = new BindableCollection <FullTimeEventModel>(FullTimeEventDataAccess.GetAllFullTimeEventsPerServiceTemplate(SelectedServiceTemplate.Id));
            Log.Trace($"Time events for service {SelectedServiceTemplate.ServiceTemplateAbbreviation} saved", LogEventType.Event);
        }
 public void EditService()
 {
     ServiceName         = SelectedService.ServiceName;
     ServiceAbbreviation = SelectedService.ServiceAbbreviation;
     ServiceTemplate     = ServiceTemplateDataAccess.GetServiceTemplateById(SelectedService.ServiceTemplateId);
     ServiceId           = SelectedService.Id;
     StartTimeText       = TimeConverters.MinutesToString(SelectedService.StartTime);
     EndTimeText         = TimeConverters.MinutesToString(SelectedService.EndTime);
     NotifyOfPropertyChange(() => CanEditService);
     NotifyOfPropertyChange(() => CanSaveService);
     NotifyOfPropertyChange(() => CanRepeat);
 }
        protected override async void OnViewLoaded(object view)
        {
            base.OnViewLoaded(view);
            RouteModel rm = RouteDataAccess.GetRouteById(RouteId);

            RouteName           = rm.RouteName;
            ServiceTemplateList = new BindableCollection <ServiceTemplateModel>(ServiceTemplateDataAccess.GetServiceTemplatesPerRoute(RouteId));
            ServiceList         = new BindableCollection <ServiceModel>(ServicesDataAccess.GetServicesPerRoute(RouteId).OrderBy(x => x.StartTime));
            NotifyOfPropertyChange(() => ServiceTemplateList);
            NotifyOfPropertyChange(() => ServiceList);
            NotifyOfPropertyChange(() => RouteName);
            NotifyOfPropertyChange(() => TimetableName);
        }
        protected override async void OnViewLoaded(object view)
        {
            base.OnViewLoaded(view);
            TimeEvents.SelectedRoute   = RouteDataAccess.GetRouteById(RouteId);
            TimeEvents.SelectedService = ServiceTemplateDataAccess.GetServiceTemplateById(ServiceId);
            TimeEvents.LocationList    = new BindableCollection <LocationModel>(LocationDataAccess.GetAllLocationsPerRoute(RouteId));
            var temp = FullTimeEventDataAccess.GetAllFullTimeEventsPerServiceTemplate(ServiceId)
                       .OrderBy(p => p.Order)
                       .ToList();

            TimeEvents.FilteredFullTimeEventList = new BindableCollection <FullTimeEventModel>(temp);
            TimeEventTypeList = TimeEventTypeDataAccess.GetAllTimeEventTypeStrings();
            NotifyOfPropertyChange(() => TimeEventTypeList);
            NotifyOfPropertyChange(() => TimeEvents);
        }
Exemple #7
0
        public void SaveServiceTemplate()
        {
            var newService = new ServiceTemplateModel();

            newService.CalculatedDuration          = CalculatedDuration;
            newService.ServiceTemplateAbbreviation = ServiceTemplateAbbreviation;
            newService.ServiceTemplateDescription  = ServiceTemplateDescription;
            newService.ServiceTemplateName         = ServiceTemplateName;
            newService.ServiceType        = SelectedServiceClass.ServiceClassName;
            newService.ServiceDirectionId = ServiceDirectionId;
            newService.RouteId            = RouteId;
            if (ServiceTemplateId <= 0)
            {
                ServiceTemplateDataAccess.InsertServiceTemplate(newService);
            }
            else
            {
                newService.Id = ServiceTemplateId;
                ServiceTemplateDataAccess.UpdateServiceTemplate(newService);
            }
            ServiceTemplateUI.ServiceTemplateList = new BindableCollection <ServiceTemplateModel>(ServiceTemplateDataAccess.GetServiceTemplatesPerRoute(RouteId));
            ClearServiceTemplate();
        }
        private void PrepareDataSet()
        {
            TimeGraphUI      = new ObservableCollection <TimeGraphUIModel>();
            ServiceClassList = ServiceClassDataAccess.GetAllServiceClasses();
            var serviceList = new ObservableCollection <ServiceModel>(ServicesDataAccess.GetServicesPerTimetable(TimetableId));

            foreach (var service in serviceList)
            {
                var item = new TimeGraphUIModel();
                var serviceTemplateId = service.ServiceTemplateId;
                var serviceTemplate   = ServiceTemplateDataAccess.GetServiceTemplateById(serviceTemplateId);
                item.TimeEventList       = new BindableCollection <ExtendedFullTimeEventModel>(FullTimeEventDataAccess.GetAllExtendedFullTimeEventsPerServiceTemplate(serviceTemplateId));
                item.ServiceName         = service.ServiceName;
                item.ServiceAbbreviation = service.ServiceAbbreviation;
                item.ServiceType         = serviceTemplate.ServiceType;
                item.StartTimeText       = service.StartTimeText;
                item.EndTimeText         = service.EndTimeText;
                int actualTime = service.StartTime;
                foreach (var fullTimeEvent in item.TimeEventList)
                {
                    actualTime += fullTimeEvent.ArrivalTime;
                    fullTimeEvent.ArrivalTimeText = TimeConverters.MinutesToString(actualTime);
                    DataPoint point = GetFirstDataPoint(fullTimeEvent, actualTime);
                    item.DataLine.Add(point);
                    if (fullTimeEvent.WaitTime > 0)
                    {
                        actualTime += fullTimeEvent.WaitTime;
                        DataPoint point2 = GetSecondDataPoint(actualTime, point.X);
                        item.DataLine.Add(point2);
                    }
                    fullTimeEvent.DepartureTimeText = TimeConverters.MinutesToString(actualTime);
                }
                TimeGraphUI.Add(item);
            }
            OnPropertyChanged("TimeGraphUI");
        }
Exemple #9
0
 public void DeleteServiceTemplate()
 {
     ServiceTemplateDataAccess.DeleteServiceTemplate(SelectedServiceTemplate.Id);
     ServiceTemplateUI.ServiceTemplateList.Remove(SelectedServiceTemplate);
     ServiceTemplateId = 0;
 }
Exemple #10
0
        protected override async void OnViewLoaded(object view)
        {
            base.OnViewLoaded(view);
            RouteModel rm = RouteDataAccess.GetRouteById(RouteId);

            ServiceTemplateUI.RouteName = rm.RouteName;
            RouteId = rm.Id;
            ServiceTemplateUI.ServiceTemplateList = new BindableCollection <ServiceTemplateModel>(ServiceTemplateDataAccess.GetServiceTemplatesPerRoute(RouteId));
            ServiceDirectionList = new BindableCollection <ServiceDirectionModel>(ServiceDirectionDataAccess.GetAllServiceDirectionsPerRoute(RouteId));
            ServiceClassList     = ServiceClassDataAccess.GetAllServiceClasses();
            TimeEventTypeList    = TimeEventTypeDataAccess.GetAllTimeEventTypes();
            NotifyOfPropertyChange(() => TimeEventTypeList);
            NotifyOfPropertyChange(() => ServiceClassList);
            NotifyOfPropertyChange(() => ServiceTemplateUI);
            NotifyOfPropertyChange(() => ServiceDirectionList);
        }