Beispiel #1
0
 private static IEnumerable<int> GenerateFlightAvailability(TempSeason season, DateTime departure, Dictionary<DateTime, bool> availableDatesReturn)
 {
     foreach (var duration in season.Durations)
       {
     var returnDate = departure.AddDays(duration);
     if (availableDatesReturn.IsAvailable(returnDate, 0.9))
     {
       yield return duration;
     }
       }
 }
Beispiel #2
0
        // per city
        public static Dictionary<DateTime, TempAvailability> GenerateFlightAvailabilities(IEnumerable<TempSeason> highSeasons)
        {
            var availableDatesDeparture = new Dictionary<DateTime, bool>();
              var availableDatesReturn = new Dictionary<DateTime, bool>();

              var availabilities = new Dictionary<DateTime, TempAvailability>();

              foreach (var season in highSeasons)
              {
            foreach (var departure in season.Dates)
            {
              if (availableDatesDeparture.IsAvailable(departure, 0.9))
              {
            var durations = GenerateFlightAvailability(season, departure, availableDatesReturn).ToList();
            if (durations.Count > 0)
            {
              TempAvailability availability;
              if (!availabilities.TryGetValue(departure, out availability))
              {
                availabilities.Add(departure, availability = new TempAvailability { DepartureDate = departure });
              }
              availability.DurationDays.UnionWith(durations);
            }
              }
            }
              }

              return availabilities;
        }