public Tgvs GetJourney(Lines line, DateTime dateOfDeparture) { IEnumerable <Tgvs> tgvs = GetWithLine(line.Id); Tgvs bestTgv = BestTgv(tgvs, dateOfDeparture.TimeOfDay); if (bestTgv == null) { return(EarliestTgv(tgvs)); } IEnumerable <HolidayPeriods> holidayPeriods = holidayPeriodService.All(); foreach (HolidayPeriods h in holidayPeriods) { if (h.StartDate.CompareTo(dateOfDeparture) <= 0 && h.EndDate.CompareTo(dateOfDeparture) >= 0) { bestTgv.AvailableBusinessSeats = (int)(bestTgv.AvailableBusinessSeats * (1 + h.ExtraSeatsPercent)); bestTgv.AvailableEconomicSeats = (int)(bestTgv.AvailableEconomicSeats * (1 + h.ExtraSeatsPercent)); bestTgv.BasePriceBusiness *= 1 + h.ExtraPricePercent; bestTgv.BasePriceEconomic *= 1 + h.ExtraPricePercent; } } IEnumerable <Tickets> tickets = ticketDAO.AllForTGV(bestTgv.Id, dateOfDeparture); foreach (Tickets t in tickets) { if (t.IsCancelled == 0) { if (t.IsBusiness == 0) { bestTgv.AvailableBusinessSeats--; } else { bestTgv.AvailableEconomicSeats--; } } } return(bestTgv); }
public IEnumerable<Tickets> AllForTGV(int tgvId, DateTime dateOfDeparture) { if (dateOfDeparture == null) throw new ArgumentException("There was no date given."); return ticketDAO.AllForTGV(tgvId, dateOfDeparture); }