public void Add() { switch (CurrentOption) { case Options.Station: var newStation = new Station { Name = string.Empty, Description = string.Empty, EcpCode = 0, RailwayStations = new List <RailwayStation> { RailwayStation } }; Stations.Add(newStation); CountLine = Stations.Count; break; case Options.OperativeSchedule: var newOperSh = new OperativeSchedule { ArrivalTime = DateTime.Now, DepartureTime = DateTime.Now, RouteName = string.Empty, NumberOfTrain = string.Empty, ListOfStops = new ObservableCollection <Station>(), ListWithoutStops = new ObservableCollection <Station>() }; OperativeSchedules.Add(newOperSh); CountLine = OperativeSchedules.Count; break; case Options.RegulatorySchedule: var newRegSh = new RegulatorySchedule { ArrivalTime = DateTime.Now, DepartureTime = DateTime.Now, RouteName = string.Empty, NumberOfTrain = string.Empty, DaysFollowings = null, ListOfStops = new ObservableCollection <Station>(), ListWithoutStops = new ObservableCollection <Station>() }; RegulatorySchedules.Add(newRegSh); CountLine = RegulatorySchedules.Count; break; } }
public void Del() { switch (CurrentOption) { case Options.Station: Stations.Remove(SelectedItemStation); CountLine = Stations.Count; break; case Options.OperativeSchedule: OperativeSchedules.Remove(SelectedItemOperativeSchedule); CountLine = OperativeSchedules.Count; break; case Options.RegulatorySchedule: RegulatorySchedules.Remove(SelectedItemRegulatorySchedule); CountLine = RegulatorySchedules.Count; break; } }
public async void Save() { ShowBusyIndicator(true, "Идет сохранение в БД"); await Task.Delay(500); //обновить изменения сушествующих записей _unitOfWork.RailwayStationRepository.Update(RailwayStation); //изменения в количестве элементов switch (CurrentOption) { case Options.Station: //ДОБАВЛЕННЫЕ var addedStations = Stations.Except(RailwayStation.Stations).ToList(); var errorNameStation = addedStations.Where(s => string.IsNullOrEmpty(s.Name)).ToList(); if (errorNameStation.Any()) { MessageBox.Show("В добавленных станциях не указанно название станции", "ОШИБКА СОХРАНЕНИЯ", MessageBoxButton.OK, MessageBoxImage.Error); ShowBusyIndicator(false); return; } var errorEcpStation = addedStations.Where(s => s.EcpCode < 1).ToList(); if (errorEcpStation.Any()) { MessageBox.Show("В добавленных станциях ECP код меньше 1", "ОШИБКА СОХРАНЕНИЯ", MessageBoxButton.OK, MessageBoxImage.Error); ShowBusyIndicator(false); return; } foreach (var addStation in addedStations) { _unitOfWork.StationRepository.Insert(addStation); } //УДАЛЕННЫЕ var removedStations = RailwayStation.Stations.Except(Stations).ToList(); foreach (var removedStation in removedStations) { //TODO: испроавить EXCEPTION удаления станции _unitOfWork.StationRepository.Remove(removedStation); } break; case Options.OperativeSchedule: //ДОБАВЛЕННЫЕ var addedOperShs = OperativeSchedules.Except(RailwayStation.OperativeSchedules).ToList(); var errorNumberOfTrainOp = addedOperShs.Where(op => string.IsNullOrEmpty(op.NumberOfTrain) || op.NumberOfTrain.Length > 10).ToList(); if (errorNumberOfTrainOp.Any()) { MessageBox.Show("В добавленных строках оперативного расписания не верно указанн номер поезда", "ОШИБКА СОХРАНЕНИЯ", MessageBoxButton.OK, MessageBoxImage.Error); ShowBusyIndicator(false); return; } var errorRouteNameOp = addedOperShs.Where(op => string.IsNullOrEmpty(op.RouteName) || op.RouteName.Length > 100).ToList(); if (errorRouteNameOp.Any()) { MessageBox.Show("В добавленных строках оперативного расписания не верно указанн маршрут", "ОШИБКА СОХРАНЕНИЯ", MessageBoxButton.OK, MessageBoxImage.Error); ShowBusyIndicator(false); return; } foreach (var addedOperSh in addedOperShs) { RailwayStation.OperativeSchedules.Add(addedOperSh); } //УДАЛЕННЫЕ var removedOperShs = RailwayStation.OperativeSchedules.Except(OperativeSchedules).ToList(); foreach (var removedOperSh in removedOperShs) { _unitOfWork.OperativeScheduleRepository.Remove(removedOperSh); } _unitOfWork.RailwayStationRepository.Update(RailwayStation); break; case Options.RegulatorySchedule: //ДОБАВЛЕННЫЕ var addedRegShs = RegulatorySchedules.Except(RailwayStation.RegulatorySchedules).ToList(); var errorNumberOfTrainReg = addedRegShs.Where(op => string.IsNullOrEmpty(op.NumberOfTrain) || op.NumberOfTrain.Length > 10).ToList(); if (errorNumberOfTrainReg.Any()) { MessageBox.Show("В добавленных строках регулярного расписания не верно указанн номер поезда", "ОШИБКА СОХРАНЕНИЯ", MessageBoxButton.OK, MessageBoxImage.Error); ShowBusyIndicator(false); return; } var errorRouteNameReg = addedRegShs.Where(op => string.IsNullOrEmpty(op.RouteName) || op.RouteName.Length > 100).ToList(); if (errorRouteNameReg.Any()) { MessageBox.Show("В добавленных строках регулярного расписания не верно указанн маршрут", "ОШИБКА СОХРАНЕНИЯ", MessageBoxButton.OK, MessageBoxImage.Error); ShowBusyIndicator(false); return; } foreach (var addedRegSh in addedRegShs) { RailwayStation.RegulatorySchedules.Add(addedRegSh); } //УДАЛЕННЫЕ var removedRegShs = RailwayStation.RegulatorySchedules.Except(RegulatorySchedules).ToList(); foreach (var removedRegSh in removedRegShs) { _unitOfWork.RegulatoryScheduleRepository.Remove(removedRegSh); } _unitOfWork.RailwayStationRepository.Update(RailwayStation); break; } //СОХРАНИМ ИЗМЕНЕНИЯ В БД одним запросом await _unitOfWork.SaveAsync(); ShowBusyIndicator(false); }