예제 #1
0
        protected bool HasPrice(VariationContent variationContent)
        {
            var price = variationContent
                        .GetPrices(PricingLoader)
                        .FirstOrDefault(x => x.MarketId == CurrentMarket.GetCurrentMarket().MarketId);

            return(price != null &&
                   price.UnitPrice != null);
        }
예제 #2
0
        protected IEnumerable <EntryContentBase> GetRelatedContent()
        {
            if (CurrentData == null)
            {
                return(Enumerable.Empty <EntryContentBase>());
            }

            var allAssociations = LinkRepository.Service.GetAssociations(CurrentData.ContentLink);

            var relatedItems  = allAssociations.Where(a => a.Group.Name == GroupName).Select(a => ContentLoader.Get <EntryContentBase>(a.Target));
            var currentMarket = CurrentMarket.GetCurrentMarket();

            return(ForVisitor(() => relatedItems.Where(i => !i.MarketFilter.Contains(currentMarket.MarketId))));
        }
예제 #3
0
        private void BindPromotions()
        {
            var variationContent = CurrentData as VariationContent;

            if (variationContent == null)
            {
                variationContent = GetVariants <VariationContent>().FirstOrDefault(FilterAction);
            }

            Visible = false;
            if (variationContent == null)
            {
                return;
            }

            // We have to load an entry to be able to get promotions.
            var entrySku        = variationContent.LoadEntry();
            var currentMarketId = CurrentMarket.GetCurrentMarket().MarketId;

            if (!entrySku.IsAvailableInMarket(currentMarketId))
            {
                return;
            }

            Promotions.Text = String.Empty;

            var promotions = entrySku.GetPromotions();

            if (!promotions.PromotionRecords.Any())
            {
                return;
            }

            Visible = true;
            PromotionsHolder.Visible = true;

            var marketService = Locate.MarketService();

            foreach (var record in promotions.PromotionRecords)
            {
                var promotionName = record.PromotionItem.DataRow.GetPromotionLanguageRows().FirstOrDefault(x => x.LanguageCode == marketService.GetMarket(MarketId.Default).DefaultLanguage.ToString()) != null?
                                    record.PromotionItem.DataRow.GetPromotionLanguageRows().FirstOrDefault(x => x.LanguageCode == marketService.GetMarket(MarketId.Default).DefaultLanguage.ToString()).DisplayName:
                                    record.PromotionItem.DataRow.Name;

                Promotions.Text += string.Format("Promotion Name: {0} <br/>", promotionName);
                Promotions.Text += string.Format("Amount Off: {0}{1}<br/>", record.PromotionReward.AmountOff.ToString(), record.PromotionReward.AmountType == "Percentage" ? "%" : "");
            }
        }
예제 #4
0
        private void CalculatePriceValues()
        {
            if (FilterAction != null && CurrentData != null)
            {
                var variationContent = CurrentData as VariationContent;
                if (variationContent == null)
                {
                    variationContent = GetVariants <VariationContent>().FirstOrDefault(FilterAction);
                }

                if (variationContent == null)
                {
                    DisplayPriceInfo();
                    return;
                }

                var currentMarket = CurrentMarket.GetCurrentMarket();

                var entry     = variationContent.LoadEntry(CatalogEntryResponseGroup.ResponseGroup.Variations);
                var salePrice = StoreHelper.GetSalePrice(entry, 1);

                if (variationContent.IsAvailableInMarket(currentMarket.MarketId) && salePrice != null)
                {
                    var basePrice   = salePrice.Money;
                    var discount    = StoreHelper.GetDiscountPrice(entry);
                    var discountNum = basePrice;

                    if (discount != null && discount.Money.Amount != -1)
                    {
                        discountNum = discount.Money;
                    }

                    var saved = basePrice.Subtract(discountNum);

                    ListPrice.Text       = basePrice.ToString();
                    DiscountPricing.Text = discountNum.ToString();
                    Savings.Text         = saved.ToString();

                    return;
                }
            }

            DisplayPriceInfo();
        }
예제 #5
0
    public void AcceptOffer()
    {
        if (Offer.IsAvailable)
        {
            CurrentMarket.RegisterTransaction(Offer.Commodity);
            account.Credit(Offer.Value);

            if (Offer.IsAPurchase)
            {
                LoadCargo(Offer.Commodity);
            }
            else if (Offer.IsASale)
            {
                UnloadCargo();
            }

            Offer.Clear();
        }
    }
예제 #6
0
        private void GetPromotions(ListViewItemEventArgs e, Entry entry)
        {
            var promotions = entry.GetPromotions();

            if (promotions.PromotionRecords.Count == 0)
            {
                return;
            }

            var lit = e.Item.FindControl("Promotions") as Literal;

            if (lit == null)
            {
                return;
            }

            e.Item.FindControl("PromotionsHolder").Visible = true;

            foreach (var record in promotions.PromotionRecords)
            {
                var promotionLanguageRow = record.PromotionItem.DataRow.GetPromotionLanguageRows()
                                           .FirstOrDefault(
                    x =>
                    x.LanguageCode ==
                    CurrentMarket.GetCurrentMarket().DefaultLanguage.ToString());

                var promotionName = promotionLanguageRow != null
                                        ? promotionLanguageRow.DisplayName
                                        : record.PromotionItem.DataRow.Name;

                lit.Text += string.Format("Promotion Name: {0} <br/>", promotionName);
                lit.Text += string.Format("Amount Off: {0}{1}<br/>",
                                          record.PromotionReward.AmountOff,
                                          record.PromotionReward.AmountType == "Percentage" ? "%" : "");
            }
        }
예제 #7
0
 protected void Page_Load(object sender, EventArgs e)
 {
     _marketId = CurrentMarket.GetCurrentMarket().MarketId;
     //Store the LastCatalogPageUrl to allow "continue shopping" redirect
     Session[Constants.LastCatalogPageUrl] = Request.Url.ToString();
 }
예제 #8
0
 protected Price GetPrice(IPricing pricing)
 {
     return(pricing.GetPrices(PricingLoader).FirstOrDefault(x => x.MarketId == CurrentMarket.GetCurrentMarket().MarketId));
 }