IEnumerable <StationLineBO> IBL1.ReturnLineStationList(int LineNumber) { try { IEnumerable <LineStation> stationLines = dl.OneLineFromList(item => item.BusLineID2 == LineNumber); IEnumerable <StationLineBO> stationLineBOs = from line in stationLines orderby line.LocationNumberOnLine let p = ReturnStationLine(LineNumber, line.StationNumberOnLine) select p; List <StationLineBO> stationLineBOs1 = new List <StationLineBO>(); foreach (StationLineBO item in stationLineBOs) { stationLineBOs1.Add(item); } for (int i = 0; i < stationLineBOs1.Count - 1; i++) { ConsecutiveStations consecutiveStations1 = dl.ReturnConsecutiveStation(stationLineBOs1[i].StationNumberOnLine, stationLineBOs1[i + 1].StationNumberOnLine); stationLineBOs1[i].DistanceBetweenTooStations = consecutiveStations1.DistanceBetweenTooStations; stationLineBOs1[i].AverageTime = consecutiveStations1.AverageTime; } stationLineBOs = stationLineBOs1; return(stationLineBOs); } catch (ExceptionLineStation ex) { throw new BOExceptionLineStation("Error", ex); } catch (ExceptionConsecutiveStations ex) { throw new BOExceptionConsecutiveStations("Error", ex); } }
ConsecutiveStations IDAL.ReturnConsecutiveStation(int stationNumber1, int stationNumber2) { ConsecutiveStations item = null; if (DataSource.ConsecutiveStations.Exists(consecutiveStations1 => consecutiveStations1.StationNumber1 == stationNumber1 && consecutiveStations1.StationNumber2 == stationNumber2)) { item = DataSource.ConsecutiveStations.Find(consecutiveStations1 => consecutiveStations1.StationNumber1 == stationNumber1 && consecutiveStations1.StationNumber2 == stationNumber2); } return(item.Clone() ?? throw new ExceptionConsecutiveStations(stationNumber1, stationNumber2, "There are no two such stations on the list!!!"));; }
void IDAL.AddConsecutiveStations(ConsecutiveStations consecutiveStations) { if (DataSource.ConsecutiveStations.Exists(consecutiveStations1 => consecutiveStations1.StationNumber1 == consecutiveStations.StationNumber1 && consecutiveStations1.StationNumber2 == consecutiveStations.StationNumber2)) { throw new ExceptionConsecutiveStations(consecutiveStations.StationNumber1, consecutiveStations.StationNumber2, "There are already two such stations on the list!!!"); } else { DataSource.ConsecutiveStations.Add(consecutiveStations.Clone()); } }
void IDAL.DeleteConsecutiveStations(int stationNumber1, int stationNumber2) { if (DataSource.ConsecutiveStations.Exists(consecutiveStations1 => consecutiveStations1.StationNumber1 == stationNumber1 && consecutiveStations1.StationNumber2 == stationNumber2)) { ConsecutiveStations item = DataSource.ConsecutiveStations.Find(consecutiveStations1 => consecutiveStations1.StationNumber1 == stationNumber1 && consecutiveStations1.StationNumber2 == stationNumber2); _ = DataSource.ConsecutiveStations.Remove(item); } else { throw new ExceptionConsecutiveStations(stationNumber1, stationNumber2, "There are no two such stations on the list!!!"); } }
private void Button_Click(object sender, RoutedEventArgs e) { ConsecutiveStations consecutiveStations = new ConsecutiveStations(bl); consecutiveStations.Show(); }
void IBL1.AddStationToLine(StationLineBO stationLineBO, int NumberStation1, int NumberStation2, TimeSpan timeSpan, float distance) { try { List <LineStation> lineStations = dl.OneLineFromList(item => item.BusLineID2 == stationLineBO.BusLineID2).ToList(); List <LineStation> lineStations1 = new List <LineStation>(); LineStation item = new LineStation(); foreach (LineStation item1 in lineStations) { item = item1; if (item.LocationNumberOnLine >= stationLineBO.LocationNumberOnLine) { ++item.LocationNumberOnLine; } lineStations1.Add(item); } dl.DeleteLineStation1(stationLineBO.BusLineID2); foreach (LineStation item2 in lineStations1) { dl.AddLineStation(item2); } LineStation lineStation1 = new LineStation { BusLineID2 = stationLineBO.BusLineID2, StationNumberOnLine = stationLineBO.StationNumberOnLine, LocationNumberOnLine = stationLineBO.LocationNumberOnLine, ChackDelete2 = stationLineBO.ChackDelete2 }; dl.AddLineStation(lineStation1); if (dl.ChackExistingConsecutiveStations(item => (item.StationNumber1 == stationLineBO.StationNumberOnLine && item.StationNumber2 == NumberStation1) || (item.StationNumber1 == NumberStation1 && item.StationNumber2 == stationLineBO.StationNumberOnLine))) { ConsecutiveStations consecutiveStations = new ConsecutiveStations { StationNumber1 = NumberStation1, StationNumber2 = stationLineBO.StationNumberOnLine, DistanceBetweenTooStations = stationLineBO.DistanceBetweenTooStations, AverageTime = stationLineBO.AverageTime }; dl.AddConsecutiveStations(consecutiveStations); } if (dl.ChackExistingConsecutiveStations(item => (item.StationNumber1 == stationLineBO.StationNumberOnLine && item.StationNumber2 == NumberStation2) || (item.StationNumber1 == NumberStation2 && item.StationNumber2 == stationLineBO.StationNumberOnLine))) { ConsecutiveStations consecutiveStations = new ConsecutiveStations { StationNumber1 = stationLineBO.StationNumberOnLine, StationNumber2 = NumberStation2, DistanceBetweenTooStations = distance, AverageTime = timeSpan }; dl.AddConsecutiveStations(consecutiveStations); } } catch (ExceptionLineStation ex) { throw new BOExceptionLineStation("Error", ex); } }
void IDAL.UpdatingConsecutiveStations(ConsecutiveStations consecutiveStations) { int index = DataSource.ConsecutiveStations.FindIndex(consecutiveStations1 => consecutiveStations1.StationNumber1 == consecutiveStations.StationNumber1 && consecutiveStations1.StationNumber2 == consecutiveStations.StationNumber2); DataSource.ConsecutiveStations[index] = index == -1 ? throw new ExceptionConsecutiveStations(consecutiveStations.StationNumber1, consecutiveStations.StationNumber2, "The consecutiveStations not exist in the compny!!!") : consecutiveStations.Clone(); }