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); }
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); }
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"); }
public void DeleteServiceTemplate() { ServiceTemplateDataAccess.DeleteServiceTemplate(SelectedServiceTemplate.Id); ServiceTemplateUI.ServiceTemplateList.Remove(SelectedServiceTemplate); ServiceTemplateId = 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); }