Exemplo n.º 1
0
 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);
        }