public void AddBreakdownItem(ProductScopeType scope, PricedItem pricedItem) { if (this.Breakdown.Keys.Contains(scope)) { this.Breakdown.First(x => x.Key == scope).Value.Add(pricedItem); } else { this.Breakdown.Add(scope, new List <PricedItem> { pricedItem }); } }
/// <summary> /// Generate service availabilities for the segment ids present. /// </summary> /// <param name="journeys">Journeys containing segments available for service creation.</param> /// <param name="scopeType">Defines scope type, depending on its value segment o journey availability will be created.</param> /// <returns></returns> private List <ServiceAvailability> GenerateServiceAvailabilities(List <Journey> journeys, ProductScopeType scopeType) { var serviceAvailabilities = new List <ServiceAvailability>(); switch (scopeType) { case ProductScopeType.PerPaxSegment: var segmentIds = journeys.SelectMany(j => j.Segments).Select(s => s.Id); serviceAvailabilities.AddRange(from segmentId in segmentIds where GenerateRandom() <= 70 select new ServiceAvailability { AvailableUnits = GenerateRandom(), IsInventoried = GenerateRandom() <= 70, LimitPerPax = 1, SellKey = segmentId }); break; case ProductScopeType.PerBooking: var journeyIds = journeys.Select(j => j.Id); if (GenerateRandom() <= 70) { serviceAvailabilities.AddRange(from journeyId in journeyIds select new ServiceAvailability { AvailableUnits = GenerateRandom(), IsInventoried = GenerateRandom() <= 70, LimitPerPax = 1, SellKey = journeyId }); } break; } return(serviceAvailabilities); }