public SearchResultConnection FindDirectConnectionWitMaxWaitingTime(Repository repository, SoughtConnection soughtConnection, TimeOfArrival maxWaitingTime) { List<BusStop> busStops = repository.BusStops; if (busStops == null) { return null; } TypeOfDayRecognizer dayRecognizer = new TypeOfDayRecognizer(); List<string> dayTypes = dayRecognizer.RecognizeTypeOfDay(soughtConnection.DateAndTime); TracksGiverForSpecifiedDayType tracksGiverForSpecfiedDayType = new TracksGiverForSpecifiedDayType(); BusStop startBusStop = null; BusStop endBusStop = null; FindStartAndEndBusStop(ref startBusStop, ref endBusStop, soughtConnection.StartBusStop, soughtConnection.EndBusStop, busStops); List<Line> linesPlyingThroughBothBusStops = GiveLinesPlyingThroughTwoBusStops(startBusStop, endBusStop); List<LineForSpecifiedDayType> allTracksFromStartToEndBusStopInSpecifiedDayType = tracksGiverForSpecfiedDayType.GiveLinesForSpecifiedDayType(linesPlyingThroughBothBusStops, dayTypes); SearchResultConnection result = GiveDirectConnectionWitMaxWaitingTime(allTracksFromStartToEndBusStopInSpecifiedDayType, soughtConnection, maxWaitingTime); if (result != null) { return result; } DateTime newDateForSoughtConnection = new DateTime(); if (soughtConnection.IsDeparture) { DateTime dayAfterDaySpecifiedByUser = soughtConnection.DateAndTime.AddDays(1); newDateForSoughtConnection = new DateTime(dayAfterDaySpecifiedByUser.Year, dayAfterDaySpecifiedByUser.Month, dayAfterDaySpecifiedByUser.Day, 0, 0, 0); } else { DateTime dayBeforeDaySpecifiedByUser = soughtConnection.DateAndTime.AddDays(-1); newDateForSoughtConnection = new DateTime(dayBeforeDaySpecifiedByUser.Year, dayBeforeDaySpecifiedByUser.Month, dayBeforeDaySpecifiedByUser.Day, 23, 59, 0); } soughtConnection = new SoughtConnection(startBusStop.BusStopName, endBusStop.BusStopName, newDateForSoughtConnection, soughtConnection.IsDeparture); dayTypes = dayRecognizer.RecognizeTypeOfDay(newDateForSoughtConnection); allTracksFromStartToEndBusStopInSpecifiedDayType = tracksGiverForSpecfiedDayType.GiveLinesForSpecifiedDayType(linesPlyingThroughBothBusStops, dayTypes); result = GiveDirectConnectionWitMaxWaitingTime(allTracksFromStartToEndBusStopInSpecifiedDayType, soughtConnection, maxWaitingTime); return result; }
private SearchResultConnection GiveDirectConnection(List<LineForSpecifiedDayType> allSpecifiedLines, SoughtConnection soughtConnection) { SearchResultConnection foundConnection = null; foreach (LineForSpecifiedDayType line in allSpecifiedLines) { foreach (Track track in line.TracksForSpecifiedDayType) { try { TimeOfArrival startBusStopTimeOfArrival = track.TimeOfArrivalOnBusStops[soughtConnection.StartBusStop]; TimeOfArrival endBusStopTimeOfArrival = track.TimeOfArrivalOnBusStops[soughtConnection.EndBusStop]; TimeOfArrival timeDistanceBetweenStartAndEndBusStop = endBusStopTimeOfArrival - startBusStopTimeOfArrival; if (timeDistanceBetweenStartAndEndBusStop > new TimeOfArrival(8, 0)) { continue; } DateTime startBusStopDateTime = new DateTime(); DateTime endBusStopDateTime = new DateTime(); if (endBusStopTimeOfArrival >= startBusStopTimeOfArrival) { // the same dates startBusStopDateTime = new DateTime(soughtConnection.DateAndTime.Year, soughtConnection.DateAndTime.Month, soughtConnection.DateAndTime.Day, startBusStopTimeOfArrival.Hour, startBusStopTimeOfArrival.Minutes, 0); endBusStopDateTime = new DateTime(soughtConnection.DateAndTime.Year, soughtConnection.DateAndTime.Month, soughtConnection.DateAndTime.Day, endBusStopTimeOfArrival.Hour, endBusStopTimeOfArrival.Minutes, 0); } else { // end date is one day after start date startBusStopDateTime = new DateTime(soughtConnection.DateAndTime.Year, soughtConnection.DateAndTime.Month, soughtConnection.DateAndTime.Day, startBusStopTimeOfArrival.Hour, startBusStopTimeOfArrival.Minutes, 0); DateTime dayAfterDayInSoughtConnection = soughtConnection.DateAndTime.AddDays(1); endBusStopDateTime = new DateTime(dayAfterDayInSoughtConnection.Year, dayAfterDayInSoughtConnection.Month, dayAfterDayInSoughtConnection.Day, endBusStopTimeOfArrival.Hour, endBusStopTimeOfArrival.Minutes, 0); } TimeOfArrival timeSpecifiedByUser = new TimeOfArrival(soughtConnection.DateAndTime.Hour, soughtConnection.DateAndTime.Minute); if (soughtConnection.IsDeparture) { if (startBusStopTimeOfArrival >= timeSpecifiedByUser) { if (foundConnection == null) { foundConnection = new SearchResultConnection(true, line.Number, startBusStopDateTime, endBusStopDateTime, timeDistanceBetweenStartAndEndBusStop, soughtConnection.StartBusStop, soughtConnection.EndBusStop); } else { TimeOfArrival foundConnectionArrivalTime = new TimeOfArrival(foundConnection.ArrivalDateTime.Hour, foundConnection.ArrivalDateTime.Minute); if (foundConnectionArrivalTime > endBusStopTimeOfArrival) { foundConnection = new SearchResultConnection(true, line.Number, startBusStopDateTime, endBusStopDateTime, timeDistanceBetweenStartAndEndBusStop, soughtConnection.StartBusStop, soughtConnection.EndBusStop); } } } } else { if (endBusStopTimeOfArrival <= timeSpecifiedByUser) { if (foundConnection == null) { foundConnection = new SearchResultConnection(true, line.Number, startBusStopDateTime, endBusStopDateTime, timeDistanceBetweenStartAndEndBusStop, soughtConnection.StartBusStop, soughtConnection.EndBusStop); } else { TimeOfArrival foundConnectionArrivalTime = new TimeOfArrival(foundConnection.ArrivalDateTime.Hour, foundConnection.ArrivalDateTime.Minute); if (foundConnectionArrivalTime < startBusStopTimeOfArrival) { foundConnection = new SearchResultConnection(true, line.Number, startBusStopDateTime, endBusStopDateTime, timeDistanceBetweenStartAndEndBusStop, soughtConnection.StartBusStop, soughtConnection.EndBusStop); } } } } } catch (Exception) { } } } return foundConnection; }
private SearchResultConnection GiveDirectConnectionWitMaxWaitingTime(List<LineForSpecifiedDayType> allSpecifiedLines, SoughtConnection soughtConnection, TimeOfArrival maxWaitingTime) { SearchResultConnection foundConnection = null; TimeOfArrival soughConnectionTimeOfArrival = new TimeOfArrival(soughtConnection.DateAndTime.Hour, soughtConnection.DateAndTime.Minute); foreach (LineForSpecifiedDayType line in allSpecifiedLines) { foreach (Track track in line.TracksForSpecifiedDayType) { try { if (track.TimeOfArrivalOnBusStops.Count < 2) { continue; } if (soughtConnection.IsDeparture) { if (track.TimeOfArrivalOnBusStops.Last().Value - soughConnectionTimeOfArrival > MAX_LENGTH_OF_TRACK || (track.TimeOfArrivalOnBusStops.First().Value - soughConnectionTimeOfArrival > MAX_WAITING_TIME_FOR_START_BUS_FOR_DEPARTUE_OR_FOR_END_BUS_FOR_ARRIVAL && soughConnectionTimeOfArrival - track.TimeOfArrivalOnBusStops.First().Value > MAX_LENGTH_OF_TRACK)) { continue; } } else { if (soughConnectionTimeOfArrival - track.TimeOfArrivalOnBusStops.First().Value > MAX_LENGTH_OF_TRACK || (soughConnectionTimeOfArrival - track.TimeOfArrivalOnBusStops.Last().Value > MAX_WAITING_TIME_FOR_START_BUS_FOR_DEPARTUE_OR_FOR_END_BUS_FOR_ARRIVAL && track.TimeOfArrivalOnBusStops.Last().Value - soughConnectionTimeOfArrival > MAX_LENGTH_OF_TRACK)) { continue; } } TimeOfArrival startBusStopTimeOfArrival = track.TimeOfArrivalOnBusStops[soughtConnection.StartBusStop]; TimeOfArrival endBusStopTimeOfArrival = track.TimeOfArrivalOnBusStops[soughtConnection.EndBusStop]; if (soughtConnection.IsDeparture) { if (startBusStopTimeOfArrival - soughConnectionTimeOfArrival > maxWaitingTime) { continue; } } else { if (soughConnectionTimeOfArrival - endBusStopTimeOfArrival > maxWaitingTime) { continue; } } TimeOfArrival timeDistanceBetweenStartAndEndBusStop = endBusStopTimeOfArrival - startBusStopTimeOfArrival; if (timeDistanceBetweenStartAndEndBusStop > new TimeOfArrival(4, 0)) { continue; } DateTime startBusStopDateTime = new DateTime(); DateTime endBusStopDateTime = new DateTime(); if (endBusStopTimeOfArrival >= startBusStopTimeOfArrival) { // the same dates startBusStopDateTime = new DateTime(soughtConnection.DateAndTime.Year, soughtConnection.DateAndTime.Month, soughtConnection.DateAndTime.Day, startBusStopTimeOfArrival.Hour, startBusStopTimeOfArrival.Minutes, 0); endBusStopDateTime = new DateTime(soughtConnection.DateAndTime.Year, soughtConnection.DateAndTime.Month, soughtConnection.DateAndTime.Day, endBusStopTimeOfArrival.Hour, endBusStopTimeOfArrival.Minutes, 0); } else { // end date is one day after start date startBusStopDateTime = new DateTime(soughtConnection.DateAndTime.Year, soughtConnection.DateAndTime.Month, soughtConnection.DateAndTime.Day, startBusStopTimeOfArrival.Hour, startBusStopTimeOfArrival.Minutes, 0); DateTime dayAfterDayInSoughtConnection = soughtConnection.DateAndTime.AddDays(1); endBusStopDateTime = new DateTime(dayAfterDayInSoughtConnection.Year, dayAfterDayInSoughtConnection.Month, dayAfterDayInSoughtConnection.Day, endBusStopTimeOfArrival.Hour, endBusStopTimeOfArrival.Minutes, 0); } TimeOfArrival timeSpecifiedByUser = new TimeOfArrival(soughtConnection.DateAndTime.Hour, soughtConnection.DateAndTime.Minute); if (soughtConnection.IsDeparture) { if (startBusStopTimeOfArrival >= timeSpecifiedByUser) { if (foundConnection == null) { foundConnection = new SearchResultConnection(true, line.Number, startBusStopDateTime, endBusStopDateTime, timeDistanceBetweenStartAndEndBusStop, soughtConnection.StartBusStop, soughtConnection.EndBusStop); } else { TimeOfArrival foundConnectionArrivalTime = new TimeOfArrival(foundConnection.ArrivalDateTime.Hour, foundConnection.ArrivalDateTime.Minute); if (foundConnectionArrivalTime > endBusStopTimeOfArrival) { foundConnection = new SearchResultConnection(true, line.Number, startBusStopDateTime, endBusStopDateTime, timeDistanceBetweenStartAndEndBusStop, soughtConnection.StartBusStop, soughtConnection.EndBusStop); } } } } else { if (endBusStopTimeOfArrival <= timeSpecifiedByUser) { if (foundConnection == null) { foundConnection = new SearchResultConnection(true, line.Number, startBusStopDateTime, endBusStopDateTime, timeDistanceBetweenStartAndEndBusStop, soughtConnection.StartBusStop, soughtConnection.EndBusStop); } else { TimeOfArrival foundConnectionArrivalTime = new TimeOfArrival(foundConnection.ArrivalDateTime.Hour, foundConnection.ArrivalDateTime.Minute); if (foundConnectionArrivalTime < startBusStopTimeOfArrival) { foundConnection = new SearchResultConnection(true, line.Number, startBusStopDateTime, endBusStopDateTime, timeDistanceBetweenStartAndEndBusStop, soughtConnection.StartBusStop, soughtConnection.EndBusStop); } } } } } catch (Exception) { } } } return foundConnection; }
private List<SingleBusStopForIndirectConnection> FindBusStopsWithLinesWhichAreCloseToTheTarget(Repository repository, SoughtConnection soughtConnection, Delegates.UpdateInformationAboutProgresForTheUser updateInformationForUserAboutSearching) { SearcherOfDirectRoutes searcherOfDirectConnections = new SearcherOfDirectRoutes(); List<SingleBusStopForIndirectConnection> busStopsToCheckList = InitializeBusStopsToCheckList(soughtConnection, repository.BusStops); List<SingleBusStopForIndirectConnection> busStopsCheckedList = new List<SingleBusStopForIndirectConnection>(); string busStopNameStopCondition = ""; NeighbourBusStopsRecognizer.Direction direction; if (soughtConnection.IsDeparture) { busStopNameStopCondition = soughtConnection.EndBusStop; direction = NeighbourBusStopsRecognizer.Direction.Next; } else { busStopNameStopCondition = soughtConnection.StartBusStop; direction = NeighbourBusStopsRecognizer.Direction.Previous; } // lastBusStop is (only in the first step) // - start bus stop for departure // - end bus stop for arrival SingleBusStopForIndirectConnection lastBusStop = busStopsToCheckList.Last(); busStopsToCheckList.RemoveAt(busStopsToCheckList.Count - 1); busStopsCheckedList.Add(lastBusStop); int numberOfAllBusStopsToCheck = busStopsToCheckList.Count; TimeOfArrival maxWaitingTime = new TimeOfArrival(2, 0); do { double actualProgress = (double)busStopsCheckedList.Count / (double)numberOfAllBusStopsToCheck; updateInformationForUserAboutSearching(actualProgress); DateTime dateTomeForRecognizerOfNeighbourBusStops = new DateTime(); if (soughtConnection.IsDeparture) { dateTomeForRecognizerOfNeighbourBusStops = lastBusStop.ArrivalDateTimeAtThisBusStopForDepartureOrAtTheNextBusStopForArrival; } else { dateTomeForRecognizerOfNeighbourBusStops = lastBusStop.DepartureDateTimeFromPreviousBusStopForDepartureOrFromCurrentBusStopForArrival; } List<string> neighbourBusStopsList = new NeighbourBusStopsRecognizer().RecognizeNeighbourBusStopsInSpecifiedDirection(lastBusStop.BusStopName, repository, dateTomeForRecognizerOfNeighbourBusStops, direction); foreach (SingleBusStopForIndirectConnection oneBusStop in busStopsToCheckList) { bool oneBusStopWasFound = false; foreach (string neighbourBusStop in neighbourBusStopsList) { if (neighbourBusStop.Equals(oneBusStop.BusStopName)) { oneBusStopWasFound = true; break; } } if (!oneBusStopWasFound) { continue; } SoughtConnection singleSoughtConnection = null; if (soughtConnection.IsDeparture) { singleSoughtConnection = new SoughtConnection(lastBusStop.BusStopName, oneBusStop.BusStopName, lastBusStop.ArrivalDateTimeAtThisBusStopForDepartureOrAtTheNextBusStopForArrival, soughtConnection.IsDeparture); } else { singleSoughtConnection = new SoughtConnection(oneBusStop.BusStopName, lastBusStop.BusStopName, lastBusStop.DepartureDateTimeFromPreviousBusStopForDepartureOrFromCurrentBusStopForArrival, soughtConnection.IsDeparture); } SearchResultConnection singleResult = searcherOfDirectConnections.FindDirectConnectionWitMaxWaitingTime(repository, singleSoughtConnection, maxWaitingTime); if (singleResult != null) { TimeOfArrival newArrivalTimeOnEndBusStop = new TimeOfArrival(singleResult.ArrivalDateTime.Hour, singleResult.ArrivalDateTime.Minute); if (oneBusStop.TotalTimeFromStartBus == null) { // only save this informations oneBusStop.ChangeFields(lastBusStop.BusStopName, singleResult.LineNumber, lastBusStop.TotalTimeFromStartBus + singleResult.TimeDistanceBetweenBusStops, singleResult.ArrivalDateTime, singleResult.DepartureDateTime); } else { // check if new time is lower and then save this if ((lastBusStop.TotalTimeFromStartBus + singleResult.TimeDistanceBetweenBusStops) < oneBusStop.TotalTimeFromStartBus) // condition { oneBusStop.ChangeFields(lastBusStop.BusStopName, singleResult.LineNumber, lastBusStop.TotalTimeFromStartBus + singleResult.TimeDistanceBetweenBusStops, singleResult.ArrivalDateTime, singleResult.DepartureDateTime); } } } } int indexOfTheNearestBusStop = -1; TimeOfArrival actualTotalTimeTravel = new TimeOfArrival(23, 59); for (int i = 0; i < busStopsToCheckList.Count; i++) { if (busStopsToCheckList[i].TotalTimeFromStartBus == null) { continue; } if (busStopsToCheckList[i].TotalTimeFromStartBus < actualTotalTimeTravel) { indexOfTheNearestBusStop = i; actualTotalTimeTravel = busStopsToCheckList[i].TotalTimeFromStartBus; } } // probably route doesn't exist if (indexOfTheNearestBusStop == -1) { break; } lastBusStop = busStopsToCheckList[indexOfTheNearestBusStop]; busStopsToCheckList.RemoveAt(indexOfTheNearestBusStop); busStopsCheckedList.Add(lastBusStop); maxWaitingTime = new TimeOfArrival(0, 20); // one of the conditions - found end bus stop and route to this bus stop if (lastBusStop.BusStopName.Equals(busStopNameStopCondition)) { break; } } while (busStopsToCheckList.Count > 0); return busStopsCheckedList; }
private List<SearchResultConnection> ProcessBusStopsCheckedList(SoughtConnection soughtConnection, List<SingleBusStopForIndirectConnection> unprocessedBusStopsList) { List<SearchResultConnection> resultList = new List<SearchResultConnection>(); if (unprocessedBusStopsList == null || unprocessedBusStopsList.Count < 2) { return null; } SingleBusStopForIndirectConnection lastBusStop = unprocessedBusStopsList.Last(); // for departure it's endBusStop, for arrival it's startBusStop unprocessedBusStopsList.RemoveAt(unprocessedBusStopsList.Count - 1); if (soughtConnection.IsDeparture) { if (!lastBusStop.BusStopName.Equals(soughtConnection.EndBusStop)) { return null; } } else { if (!lastBusStop.BusStopName.Equals(soughtConnection.StartBusStop)) { return null; } } string busStopNameForStopCondition = ""; string startBusStopNameInDirectConnection = ""; string endBusStopNameInDirectConnection = ""; if (soughtConnection.IsDeparture) { busStopNameForStopCondition = soughtConnection.StartBusStop; startBusStopNameInDirectConnection = lastBusStop.PreviousBusStopNameForDepartureOrNextBusStopForArrival; endBusStopNameInDirectConnection = lastBusStop.BusStopName; } else { busStopNameForStopCondition = soughtConnection.EndBusStop; startBusStopNameInDirectConnection = lastBusStop.BusStopName; endBusStopNameInDirectConnection = lastBusStop.PreviousBusStopNameForDepartureOrNextBusStopForArrival; } bool stopCondition = false; TimeOfArrival arrivalTime = new TimeOfArrival(lastBusStop.ArrivalDateTimeAtThisBusStopForDepartureOrAtTheNextBusStopForArrival.Hour, lastBusStop.ArrivalDateTimeAtThisBusStopForDepartureOrAtTheNextBusStopForArrival.Minute); TimeOfArrival departureTime = new TimeOfArrival(lastBusStop.DepartureDateTimeFromPreviousBusStopForDepartureOrFromCurrentBusStopForArrival.Hour, lastBusStop.DepartureDateTimeFromPreviousBusStopForDepartureOrFromCurrentBusStopForArrival.Minute); TimeOfArrival timeDistanceBetweenBusStops = arrivalTime - departureTime; resultList.Add(new SearchResultConnection(false, lastBusStop.LineNumberWhichLeadToThisBusStop, lastBusStop.DepartureDateTimeFromPreviousBusStopForDepartureOrFromCurrentBusStopForArrival, lastBusStop.ArrivalDateTimeAtThisBusStopForDepartureOrAtTheNextBusStopForArrival, timeDistanceBetweenBusStops, startBusStopNameInDirectConnection, endBusStopNameInDirectConnection)); do { string previousOrNextBusStopName = lastBusStop.PreviousBusStopNameForDepartureOrNextBusStopForArrival; int indexOfUnprocessedBusStop = -1; for (int i = unprocessedBusStopsList.Count - 1; i >= 0; i--) { if (unprocessedBusStopsList[i].BusStopName.Equals(previousOrNextBusStopName)) { lastBusStop = unprocessedBusStopsList[i]; indexOfUnprocessedBusStop = i; unprocessedBusStopsList.RemoveAt(indexOfUnprocessedBusStop); break; } } if (indexOfUnprocessedBusStop == -1) { return null; } if (lastBusStop.LineNumberWhichLeadToThisBusStop.Equals(resultList.Last().LineNumber)) { if (soughtConnection.IsDeparture) { resultList.Last().ChangeFieldsForDepartureOption(lastBusStop.DepartureDateTimeFromPreviousBusStopForDepartureOrFromCurrentBusStopForArrival, lastBusStop.PreviousBusStopNameForDepartureOrNextBusStopForArrival); } else { resultList.Last().ChangeFieldsForArrivalOption(lastBusStop.ArrivalDateTimeAtThisBusStopForDepartureOrAtTheNextBusStopForArrival, lastBusStop.PreviousBusStopNameForDepartureOrNextBusStopForArrival); } } else { if (soughtConnection.IsDeparture) { startBusStopNameInDirectConnection = lastBusStop.PreviousBusStopNameForDepartureOrNextBusStopForArrival; endBusStopNameInDirectConnection = lastBusStop.BusStopName; } else { startBusStopNameInDirectConnection = lastBusStop.BusStopName; endBusStopNameInDirectConnection = lastBusStop.PreviousBusStopNameForDepartureOrNextBusStopForArrival; } arrivalTime = new TimeOfArrival(lastBusStop.ArrivalDateTimeAtThisBusStopForDepartureOrAtTheNextBusStopForArrival.Hour, lastBusStop.ArrivalDateTimeAtThisBusStopForDepartureOrAtTheNextBusStopForArrival.Minute); departureTime = new TimeOfArrival(lastBusStop.DepartureDateTimeFromPreviousBusStopForDepartureOrFromCurrentBusStopForArrival.Hour, lastBusStop.DepartureDateTimeFromPreviousBusStopForDepartureOrFromCurrentBusStopForArrival.Minute); timeDistanceBetweenBusStops = arrivalTime - departureTime; resultList.Add(new SearchResultConnection(false, lastBusStop.LineNumberWhichLeadToThisBusStop, lastBusStop.DepartureDateTimeFromPreviousBusStopForDepartureOrFromCurrentBusStopForArrival, lastBusStop.ArrivalDateTimeAtThisBusStopForDepartureOrAtTheNextBusStopForArrival, timeDistanceBetweenBusStops, startBusStopNameInDirectConnection, endBusStopNameInDirectConnection)); } if (lastBusStop.BusStopName.Equals(busStopNameForStopCondition)) { stopCondition = true; } } while (!stopCondition); resultList.RemoveAt(resultList.Count - 1); if (soughtConnection.IsDeparture) { resultList.Reverse(); } return resultList; }
public List<SearchResultConnection> FindIndirectConnection(Repository repository, SoughtConnection soughtConnection, Delegates.UpdateInformationAboutProgresForTheUser updateInformationForUserAboutSearching) { List<SingleBusStopForIndirectConnection> unprocessedBusStopsList = FindBusStopsWithLinesWhichAreCloseToTheTarget(repository, soughtConnection, updateInformationForUserAboutSearching); List<SearchResultConnection> resultList = ProcessBusStopsCheckedList(soughtConnection, unprocessedBusStopsList); return resultList; }
private List<SingleBusStopForIndirectConnection> InitializeBusStopsToCheckList(SoughtConnection soughtConnection, List<BusStop> allBusStops) { int numberOfAllBusStops = allBusStops.Count; List<SingleBusStopForIndirectConnection> busStopsToCheckList = new List<SingleBusStopForIndirectConnection>(); SingleBusStopForIndirectConnection startingBusStop = null; if (soughtConnection.IsDeparture) { for (int i = 0; i < numberOfAllBusStops; i++) { if (allBusStops[i].BusStopName.Equals(soughtConnection.StartBusStop)) { startingBusStop = new SingleBusStopForIndirectConnection(allBusStops[i].BusStopName, "", "", new TimeOfArrival(0, 0), soughtConnection.DateAndTime, soughtConnection.DateAndTime); } else { busStopsToCheckList.Add(new SingleBusStopForIndirectConnection(allBusStops[i].BusStopName, "", "", null, new DateTime(), new DateTime())); } } } else { for (int i = 0; i < numberOfAllBusStops; i++) { if (allBusStops[i].BusStopName.Equals(soughtConnection.EndBusStop)) { startingBusStop = new SingleBusStopForIndirectConnection(allBusStops[i].BusStopName, "", "", new TimeOfArrival(0, 0), soughtConnection.DateAndTime, soughtConnection.DateAndTime); } else { busStopsToCheckList.Add(new SingleBusStopForIndirectConnection(allBusStops[i].BusStopName, "", "", null, new DateTime(), new DateTime())); } } } busStopsToCheckList.Add(startingBusStop); return busStopsToCheckList; }
public SearchArgs(SoughtConnection soughtConnectionByUser, bool shouldSearchOnlyDirectConnections) { SoughtConnectionByUser = soughtConnectionByUser; ShouldSearchOnlyDirectConnections = shouldSearchOnlyDirectConnections; }