Пример #1
0
        public SearchVenue GetPlacePrice(SearchVenue searchVenue,
                                         List <EventDetail> eventDetails,
                                         List <EventTicketDetail> eventTicketDetails,
                                         List <TicketCategory> ticketCategories,
                                         List <EventTicketAttribute> eventTicketAttributes
                                         )
        {
            try
            {
                var adultCategories = ticketCategories.Where((item) =>
                { // check is adult exists
                    return(item.Name.ToLower().Contains("adult"));
                });
                var childCategories = ticketCategories.Where((item) =>
                { // check if child exists
                    return(item.Name.ToLower().Contains("child"));
                });
                var adultPriceModel = new PriceModel();
                var childPriceModel = new PriceModel();
                if (adultCategories.Count() > 0)
                { // if adult exists then pick base price of adult
                    adultPriceModel = filterPrices(adultCategories.ToList(), eventTicketDetails, eventTicketAttributes);
                }
                if (childCategories.Count() > 0)
                { // if child exists then pick base price of child
                    childPriceModel = filterPrices(childCategories.ToList(), eventTicketDetails, eventTicketAttributes);
                }

                if (adultCategories.Count() == 0 || childCategories.Count() == 0)
                { // if adult or child not exists then pick the base price of place
                    var currentPriceModel = filterEtabyPrice(eventTicketAttributes);
                    if (childCategories.Count() == 0)
                    {
                        childPriceModel = currentPriceModel;
                    }
                    if (adultCategories.Count() == 0)
                    {
                        adultPriceModel = currentPriceModel;
                    }
                }
                if (eventDetails.Count() == 0 || eventTicketDetails.Count() == 0 || eventTicketAttributes.Count() == 0)
                {
                    return(searchVenue);
                }
                else
                {
                    searchVenue.AdultETAId = adultPriceModel.EtaId;
                    searchVenue.ChildETAId = childPriceModel.EtaId;
                    searchVenue.AdultPrice = Decimal.Parse(adultPriceModel.Price.ToString("0.00"));
                    searchVenue.ChildPrice = Decimal.Parse(childPriceModel.Price.ToString("0.00"));
                    searchVenue.Price      = searchVenue.AdultPrice + searchVenue.ChildPrice;
                }
                return(searchVenue);
            }
            catch (Exception e)
            {
                _logger.Log(Logging.Enums.LogCategory.Error, e);
                return(searchVenue);
            }
        }
Пример #2
0
        public PriceModel filterEtabyPrice(List <EventTicketAttribute> eventTicketAttributes)
        {
            var     minPrice         = int.MaxValue;
            decimal min              = 0;
            long    currentETAId     = 0;
            var     isMinPriceExists = false;

            foreach (var eventTicketAttribute in eventTicketAttributes)
            {
                currentETAId = eventTicketAttribute.Id;
                if (eventTicketAttribute.Price < minPrice && eventTicketAttribute.Price != 0)
                {
                    isMinPriceExists = true;
                    min          = eventTicketAttribute.Price;
                    currentETAId = eventTicketAttribute.Id;
                }
            }
            if (!isMinPriceExists)
            {
                min = 0;
            }
            var priceModel = new PriceModel();

            priceModel.EtaId = currentETAId;
            priceModel.Price = min;
            return(priceModel);
        }