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 SaveTimeEvent() { TimeEventModel newTimeEvent = new TimeEventModel(); newTimeEvent.EventType = TimeType; newTimeEvent.ArrivalTime = ArrivalTime; newTimeEvent.WaitTime = WaitTime; newTimeEvent.LocationId = Location.Id; newTimeEvent.Order = Order; newTimeEvent.ServiceTemplateId = ServiceId; if (TimeEventId <= 0) { TimeEventDataAccess.InsertTimeEventForServiceTemplate(newTimeEvent); } else { newTimeEvent.Id = TimeEventId; TimeEventDataAccess.UpdateTimeEvent(newTimeEvent); } var temp = FullTimeEventDataAccess.GetAllFullTimeEventsPerServiceTemplate(ServiceId) .OrderBy(p => p.Order) .ToList(); TimeEvents.FilteredFullTimeEventList = new BindableCollection <FullTimeEventModel>(temp); UpdateCalculatedDuration(); NotifyOfPropertyChange(() => TimeEvents); ClearTimeEvent(); }
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); }
private void PrepareDataSet() { TimeGraphUI = new BindableCollection <TimeGraphUIModel>(); var serviceList = new BindableCollection <ServiceModel>(ServicesDataAccess.GetServicesPerTimetable(TimetableId)); foreach (var service in serviceList) { var item = new TimeGraphUIModel(); var serviceTemplateId = service.ServiceTemplateId; item.TimeEventList = new BindableCollection <ExtendedFullTimeEventModel>(FullTimeEventDataAccess.GetAllExtendedFullTimeEventsPerServiceTemplate(serviceTemplateId)); item.ServiceName = service.ServiceName; item.ServiceAbbreviation = service.ServiceAbbreviation; int actualTime = service.StartTime; foreach (var fullTimeEvent in item.TimeEventList) { actualTime += fullTimeEvent.ArrivalTime; 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); } } TimeGraphUI.Add(item); } }
public static List <DepartureArrivalTimetableModel> GetDeparturesAndArrivals(int timetableId, int locationId) { List <DepartureArrivalTimetableModel> output = new List <DepartureArrivalTimetableModel>(); var serviceList = ServicesDataAccess.GetServicesPerTimetable(timetableId); foreach (var service in serviceList) { var departureArrival = new DepartureArrivalTimetableModel(); departureArrival.ServiceName = service.ServiceName; departureArrival.ServiceAbbrev = service.ServiceAbbreviation; departureArrival.ServiceId = service.Id; departureArrival.StartTime = service.StartTime; departureArrival.EndTime = service.EndTime; var found = false; var serviceDirection = ServiceDirectionDataAccess.GetServiceDirectionByServiceTemplateId(service.ServiceTemplateId); var timeEventList = FullTimeEventDataAccess.GetAllFullTimeEventsPerServiceTemplate(service.ServiceTemplateId); if (serviceDirection.IsDescending) { timeEventList = timeEventList.OrderByDescending(x => x.LocationOrder).ToList(); } else { timeEventList = timeEventList.OrderBy(x => x.LocationOrder).ToList(); } int arrivalTime = departureArrival.StartTime; int departureTime = departureArrival.StartTime; foreach (var timeEvent in timeEventList) { departureArrival.ArrivalTime += timeEvent.ArrivalTime; departureArrival.DepartureTime += timeEvent.ArrivalTime + timeEvent.WaitTime; if (timeEvent.LocationId == locationId) { found = true; // need to filter, if the location is not included in the service, do not show it. departureArrival.LocationName = timeEvent.LocationName; departureArrival.LocationAbbrev = timeEvent.LocationAbbreviation; departureArrival.EventType = timeEvent.EventType; departureArrival.ArrivalTime = arrivalTime; departureArrival.DepartureTime = departureTime; } if (timeEvent.EventType == "S") { departureArrival.OriginName = timeEvent.LocationName; departureArrival.OriginAbbrev = timeEvent.LocationAbbreviation; } if (timeEvent.EventType == "E") { departureArrival.DestinationName = timeEvent.LocationName; departureArrival.DestinationAbbrev = timeEvent.LocationAbbreviation; } } if (found) { output.Add(departureArrival); } } return(output); }
public void LoadTimeEvents() { HasTimeEvents = false; FullTimeEventsList = new BindableCollection <FullTimeEventModel>(FullTimeEventDataAccess.CreateTimeEventsPerServiceTemplate(SelectedServiceTemplate.Id)); NotifyOfPropertyChange(() => FullTimeEventsList); }
public void EditServiceTemplate() { ServiceTemplateName = SelectedServiceTemplate.ServiceTemplateName; ServiceTemplateAbbreviation = SelectedServiceTemplate.ServiceTemplateAbbreviation; SelectedServiceClass = ServiceClassDataAccess.GetServiceClassModelFromString(SelectedServiceTemplate.ServiceType, ServiceClassList); ServiceTemplateDescription = SelectedServiceTemplate.ServiceTemplateDescription; CalculatedDuration = SelectedServiceTemplate.CalculatedDuration; ServiceDirectionId = SelectedServiceTemplate.ServiceDirectionId; SelectedServiceDirection = ServiceDirectionDataAccess.GetServiceDirectionById(ServiceDirectionId); ServiceDirectionName = SelectedServiceDirection.ServiceDirectionName; ServiceTemplateId = SelectedServiceTemplate.Id; FullTimeEventsList = new BindableCollection <FullTimeEventModel>(FullTimeEventDataAccess.GetAllFullTimeEventsPerServiceTemplate(SelectedServiceTemplate.Id)); NotifyOfPropertyChange(() => CanLoadTimeEvents); NotifyOfPropertyChange(() => CanEditServiceTemplate); NotifyOfPropertyChange(() => CanDeleteServiceTemplate); NotifyOfPropertyChange(() => SelectedServiceClass); }
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"); }