private void EditOdRemoveSchedulerEntryInDetail(Models.RouteScheduler rsch, int mode) { foreach (DataGridSchedulerDetail item in CurrnetDetailRouteScheduler) { if (rsch.DayOfWeek == item.DayOfWeek) { foreach (Models.RouteScheduler innerScheduler in item.RouteSchedulerDetail) { if (innerScheduler.Id == rsch.Id) { if (mode == 1) // edit { item.RouteSchedulerDetail.Remove(innerScheduler); item.RouteSchedulerDetail.Add(rsch); break; } else if (mode == 2) // remove { item.RouteSchedulerDetail.Remove(innerScheduler); break; } } } } item.RouteSchedulerDetail = new ObservableCollection <Models.RouteScheduler>( item.RouteSchedulerDetail.OrderBy(o => o.StartTime) ); } }
void AddSchedulerMethod() { ObservableCollection <Models.RouteScheduler> RouteSchedulerList = new ObservableCollection <Models.RouteScheduler>(); RouteSchedulerList.Add(new Models.RouteScheduler()); ViewModels.AddSchedulerViewModel addSchedulerViewModel = new AddSchedulerViewModel(RouteSchedulerList); Views.AddSchedulerView addSchedulerView = new Views.AddSchedulerView( addSchedulerViewModel ); addSchedulerView.Owner = CurrentSchedulerWindow; MakeLogEntry(8, null, null, "open AddScheduler. Start adding scheduler"); if ((bool)addSchedulerView.ShowDialog()) { foreach (Models.RouteScheduler item in addSchedulerViewModel.CurrentRouteSchedulerCollection) { Models.RouteScheduler routeScheduler = Models.RouteScheduler.GetCopyOfRouteScheduler(item); routeScheduler.RouteId = CurrentRoute.Id; AddEntry <Models.RouteScheduler>(routeScheduler); CurrnetRouteScheduler.Add(routeScheduler); CurrnetRouteScheduler = new ObservableCollection <Models.RouteScheduler>( CurrnetRouteScheduler.OrderBy(o => o.StartTime).OrderBy(o => o.DayOfWeek)); AddSchedulerEntryToDetail(routeScheduler); } CurrentRouteScheduler_Changed(); } else { MakeLogEntry(8, null, null, "open AddScheduler. Cancel adding scheduler"); } }
void DeleteSchedulerMethod(Models.RouteScheduler SelectedItem) { MakeLogEntry(8, null, null, "open AddScheduler. Start deleting scheduler"); if (DeleteEntry <Models.RouteScheduler>(SelectedItem) == MessageBoxResult.Yes) { CurrnetRouteScheduler.Remove(SelectedItem); EditOdRemoveSchedulerEntryInDetail(SelectedItem, 2); CurrentRouteScheduler_Changed(); } else { MakeLogEntry(8, null, null, "open AddScheduler. Cancel deleting scheduler"); } }
private Models.RouteScheduler FindSelectedRouteSchedulerInLB(object SelectedItem) { System.Windows.Controls.ListBox lb = Helpers.UIHelper.FindChild <System.Windows.Controls.ListBox>(SelectedItem as System.Windows.Controls.DataGrid, "SchedulerLB"); Models.RouteScheduler routeSchedulerSelected = null; if (lb.SelectedItem == null && lb.Items.Count > 0) { routeSchedulerSelected = lb.Items[0] as Models.RouteScheduler; } else { routeSchedulerSelected = lb.SelectedItem as Models.RouteScheduler; } return(routeSchedulerSelected); }
public static Models.RouteScheduler GetCopyOfRouteScheduler(Models.RouteScheduler _routeScheduler) { return(new Models.RouteScheduler() { Id = _routeScheduler.Id, AddingDate = _routeScheduler.AddingDate, DayOfWeek = _routeScheduler.DayOfWeek, DeletingDate = _routeScheduler.DeletingDate, IsDeleted = _routeScheduler.IsDeleted, Route = _routeScheduler.Route, RouteId = _routeScheduler.RouteId, StartTime = _routeScheduler.StartTime, WindowStartTime = _routeScheduler.WindowStartTime, Name = _routeScheduler.Name }); }
void EditSchedulerMethod(Models.RouteScheduler SelectedItem) { if (SelectedItem == null) { return; } ObservableCollection <Models.RouteScheduler> RouteSchedulerList = new ObservableCollection <Models.RouteScheduler>(); RouteSchedulerList.Add( Models.RouteScheduler.GetCopyOfRouteScheduler(SelectedItem) ); ViewModels.AddSchedulerViewModel addSchedulerViewModel = new AddSchedulerViewModel(RouteSchedulerList); Views.AddSchedulerView addSchedulerView = new Views.AddSchedulerView( addSchedulerViewModel ); addSchedulerView.Owner = CurrentSchedulerWindow; MakeLogEntry(8, null, null, "open AddScheduler. Start editing scheduler"); if ((bool)addSchedulerView.ShowDialog()) { foreach (Models.RouteScheduler item in addSchedulerViewModel.CurrentRouteSchedulerCollection) { Models.RouteScheduler routeScheduler = Models.RouteScheduler.GetCopyOfRouteScheduler(item); if (routeScheduler.Id == 0) { AddEntry <Models.RouteScheduler>(routeScheduler); CurrnetRouteScheduler.Add(routeScheduler); CurrentSchedulerWindow.CurrentSchedulerVisual.CurrentRouteScheduler = CurrnetRouteScheduler; AddSchedulerEntryToDetail(routeScheduler); } else { EditEntry <Models.RouteScheduler>(routeScheduler); EditOdRemoveSchedulerEntryInDetail(routeScheduler, 1); } } CurrnetRouteScheduler = new ObservableCollection <Models.RouteScheduler>( CurrnetRouteScheduler.OrderBy(o => o.StartTime).OrderBy(o => o.DayOfWeek)); CurrentRouteScheduler_Changed(); } else { MakeLogEntry(8, null, null, "open AddScheduler. Cancel editing scheduler"); } }
private void OkCommandMethod() { if (CurrentRouteSchedulerCollection[0].Id == 0 || !CurrentRouteSchedulerCollection[0].Equals( CurrentDataBase.RouteSchedulers.Find(CurrentRouteSchedulerCollection[0].Id))) { if (currentRouteSchedulerCollection[0].DayOfWeek == 0) { MessageBox.Show("Необходимо выбрать хотябы один день недели!", "Добавление расписания", MessageBoxButton.OK, MessageBoxImage.Stop); return; } if (CurrentRouteSchedulerCollection[0].AddingDate == 0) { Int32 unixTimestamp = (Int32)(DateTime.Now.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; CurrentRouteSchedulerCollection[0].AddingDate = unixTimestamp; } if (CurrentRouteSchedulerCollection[0].DayOfWeek.ToString().Length > 1) // select more that one day { for (int i = 1; i < CurrentRouteSchedulerCollection[0].DayOfWeek.ToString().Length; i++) { Models.RouteScheduler routeScheduler = Models.RouteScheduler.GetCopyOfRouteScheduler(CurrentRouteSchedulerCollection[0]); if (routeScheduler.Id != 0) { routeScheduler.Id = 0; } string day_of_week = CurrentRouteSchedulerCollection[0].DayOfWeek.ToString()[i].ToString(); routeScheduler.DayOfWeek = Convert.ToInt32(day_of_week); CurrentRouteSchedulerCollection.Add(routeScheduler); } CurrentRouteSchedulerCollection[0].DayOfWeek = Convert.ToInt32( CurrentRouteSchedulerCollection[0].DayOfWeek.ToString()[0].ToString() ); } CurrentAddSchedulerWindow.DialogResult = true; } else { CurrentAddSchedulerWindow.DialogResult = false; } }
private void AddSchedulerEntryToDetail(Models.RouteScheduler rsch) { DataGridSchedulerDetail dataGridSchedulerDetail = CurrnetDetailRouteScheduler.FirstOrDefault(o => o.DayOfWeek == rsch.DayOfWeek); if (dataGridSchedulerDetail == null) { dataGridSchedulerDetail = new DataGridSchedulerDetail(); dataGridSchedulerDetail.DayOfWeek = rsch.DayOfWeek; dataGridSchedulerDetail.RouteSchedulerDetail = new ObservableCollection <Models.RouteScheduler>(); dataGridSchedulerDetail.RouteSchedulerDetail.Add(rsch); CurrnetDetailRouteScheduler.Add(dataGridSchedulerDetail); } else { dataGridSchedulerDetail.RouteSchedulerDetail.Add(rsch); } dataGridSchedulerDetail.RouteSchedulerDetail = new ObservableCollection <Models.RouteScheduler>( dataGridSchedulerDetail.RouteSchedulerDetail.OrderBy(o => o.StartTime) ); CurrnetDetailRouteScheduler = new ObservableCollection <DataGridSchedulerDetail>(CurrnetDetailRouteScheduler.OrderBy(o => o.DayOfWeek)); }