示例#1
0
        protected string GetBasketTotal()
        {
            var helper = new BasketHelper();
            var total  = helper.GetBasketTotal();

            return(total.ToString("F"));
        }
示例#2
0
        protected string GetBasketText()
        {
            var helper = new BasketHelper();
            var basket = helper.GetBasket();

            return(string.Format("My Basket ({0})", helper.GetProductCount()));
        }
        public async Task <IActionResult> OnPostAsync()
        {
            Animate = true;
            Product = await _ds.GetProductByIdAsync(ProductId.Value);

            BasketHelper.AddToBasket(HttpContext.Session, ProductId.Value, Product.CalculatedPrice, Number);
            return(RedirectToPage("/Categories", new { CategoryId = CategoryId }));
        }
        public async Task OnGetAsync()
        {
            Basket   = BasketHelper.GetBasket(HttpContext.Session);
            Products = await _ds.GetProductsAsync();

            MainLayout.ShoppingBasket = Basket;
            ViewData["MainLayout"]    = MainLayout;
        }
示例#5
0
        private IList <BasketItem> GetBasketItems()
        {
            Basket         basket             = AbleContext.Current.User.Basket;
            IBasketService preCheckoutService = AbleContext.Resolve <IBasketService>();

            preCheckoutService.Combine(basket);
            _DisplayedBasketItems = BasketHelper.GetDisplayItems(basket, false);
            return(_DisplayedBasketItems);
        }
示例#6
0
        protected void Page_PreRender(object sender, EventArgs e)
        {
            bool hasSubscriptions     = BasketHelper.HasRecurringSubscriptions(AbleContext.Current.User.Basket);
            bool newSubFeatureEnabled = AbleContext.Current.Store.Settings.ROCreateNewOrdersEnabled;

            AmazonCheckoutWidget.Visible = AbleContext.Current.User.Basket.Items.Count > 0 &&
                                           (!hasSubscriptions || !newSubFeatureEnabled) &&
                                           HasAmazonGateway();
        }
示例#7
0
        public async Task <IActionResult> OnPostAsync()
        {
            Animate = true;
            Product = await _ds.GetProductByIdAsync(ProductId.Value);

            BasketHelper.AddToBasket(HttpContext.Session, ProductId.Value, Product.CalculatedPrice, Number);
            return(RedirectToPage("ProductDetails", new { ProductId = ProductId }));
//            MainLayout.ShoppingBasket = BasketHelper.GetBasket(HttpContext.Session);
//            ViewData["MainLayout"] = MainLayout;
        }
示例#8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var helper = new BasketHelper();

            rptOrderHistory.DataSource = helper.GetAllPurchasedProducts();
            rptOrderHistory.DataBind();

            rptCurrentOrders.DataSource = helper.GetAllProducts();
            rptCurrentOrders.DataBind();
        }
示例#9
0
        public async Task OnGetAsync()
        {
            if (ProductId != null)
            {
                Product = await _ds.GetProductByIdAsync(ProductId.Value);

                ProductQuantity = await _ds.GetProductStockAsync(ProductId.Value);
            }
            MainLayout.ShoppingBasket = BasketHelper.GetBasket(HttpContext.Session);
            ViewData["MainLayout"]    = MainLayout;
        }
示例#10
0
        public decimal CalculateTotalDeliveryPrice(BasketModel basket)
        {
            var deliveryPrice        = _settings.CalculatorSettings.DeliveryPrice;
            var basketDeliveryPrice  = _settings.CalculatorSettings.BasketDeliveryPrice;
            var productDeliveryPrice = _settings.CalculatorSettings.ProductDeliveryPrice;

            var totalDelivery =
                BasketHelper.CalculateDeliveryPrice(basket, deliveryPrice, basketDeliveryPrice, productDeliveryPrice);

            return(totalDelivery);
        }
示例#11
0
        protected void Page_Load(object sender, EventArgs e)
        {
            helper = new BasketHelper();
            // Get basket based on tracker id
            basket = helper.GetBasket();

            if (basket != null)
            {
                rptProducts.DataSource = helper.GetAllProducts(basket);
                rptProducts.DataBind();
            }
        }
示例#12
0
        protected decimal GetBasketSubtotal()
        {
            decimal            basketTotal  = 0;
            IList <BasketItem> displayItems = BasketHelper.GetDisplayItems(AbleContext.Current.User.Basket, true, true);

            foreach (BasketItem bi in displayItems)
            {
                basketTotal += InvoiceHelper.GetInvoiceExtendedPrice(bi);
            }

            return(basketTotal);
        }
示例#13
0
        protected bool AllowPartialPayments()
        {
            bool allow = this.AllowAmountEntry || AbleContext.Current.Store.Settings.EnablePartialPaymentCheckouts;

            // check if this order contain subscriptions
            if (allow)
            {
                allow = !BasketHelper.HasRecurringSubscriptions(AbleContext.Current.User.Basket);
            }

            return(allow);
        }
示例#14
0
        protected void Page_PreRender(object sender, System.EventArgs e)
        {
            // EXPRESS CHECKOUT BUTTON IS NOT VISIBLE BY DEFAULT
            // DETERMINE WHETHER THE PAYPAL GATEWAY IS DEFINED, AND WHETHER IT HAS API SERVICES ENABLED
            // BUTTON ONLY SHOWS IF PRODUCTS ARE IN THE BASKET AND MIN/MAX ORER LIMITS ARE MET
            if (BasketHasProducts())
            {
                bool hasSubscriptions     = BasketHelper.HasRecurringSubscriptions(AbleContext.Current.User.Basket);
                bool newSubFeatureEnabled = AbleContext.Current.Store.Settings.ROCreateNewOrdersEnabled;
                if (!hasSubscriptions || !newSubFeatureEnabled)
                {
                    Basket basket = AbleContext.Current.User.Basket;
                    foreach (BasketItem item in basket.Items)
                    {
                        if (item.OrderItemType == OrderItemType.Product)
                        {
                            if (item.Product.IsProhibited)
                            {
                                this.Visible = false;
                                return;
                            }
                        }
                    }

                    // FIND THE PAYPAL GATEWAY
                    PayPalProvider provider = AbleCommerce.Code.StoreDataHelper.GetPayPalProvider();
                    if (provider != null && provider.ApiEnabled && ValidateOrderMinMaxAmounts())
                    {
                        //SHOW PANEL IF API ENABLED
                        ExpressCheckoutPanel.Visible = !AbleContext.Current.Store.Settings.ProductPurchasingDisabled;
                        if (ShowHeader)
                        {
                            phHeader.Visible = true;
                        }
                        else
                        {
                            phHeader.Visible = false;
                        }
                        if (ShowDescription)
                        {
                            phDescription.Visible = true;
                        }
                        else
                        {
                            phDescription.Visible = false;
                        }

                        phBillMeLaterBtn.Visible = provider.IsPayPalCreditEnabled;
                    }
                }
            }
        }
示例#15
0
        public async Task OnGetAsync()
        {
            MainLayout.ShoppingBasket = BasketHelper.GetBasket(HttpContext.Session);
            ViewData["MainLayout"]    = MainLayout;
            var userID = _um.GetUserId(User);
            var q      = await _ds.GetAllOrdersAsync();

            Orders = q.Where(o => o.UserID == userID);
            if (OrderId != 0)
            {
                Order = _ds.GetOrder(OrderId);
            }
        }
示例#16
0
        private IList <BasketItem> GetBasketItems()
        {
            Basket basket = AbleContext.Current.User.Basket;

            if (!_Recalculated)
            {
                IBasketService preCheckoutService = AbleContext.Resolve <IBasketService>();
                preCheckoutService.Recalculate(basket);
                preCheckoutService.Combine(basket);
                _Recalculated = true;
            }
            _DisplayedBasketItems = BasketHelper.GetDisplayItemsForInvoice(basket, false);
            return(_DisplayedBasketItems);
        }
示例#17
0
        protected void AddToCart_Click(object sender, EventArgs e)
        {
            var helper = new BasketHelper();
            var basket = helper.GetBasket();

            if (basket != null)
            {
                // TODO: This doesn't work if there's already a historical product..
                helper.AddProductToBasket(basket, Sitecore.Context.Item.Name, 1);
            }

            var url = Sitecore.Web.WebUtil.GetRawUrl();

            Response.Redirect(url + "?sc_trk={4BEEC42D-0349-4264-93E4-A14C4075CFEF}");
        }
示例#18
0
        public ActionResult Order(PagePlusActivityPlusOrderDinners model)
        {
            Order order = (Order)Session["order"];

            if (order == null)
            {
                order = new Order();
            }

            DateTime startTime = model.Day.Date + model.Time.TimeOfDay;
            Activity activity  = activityRepository.GetActivity(model.Activity.Id, (Language)Session["language"]);

            OrderHasTickets ticketOrder = new OrderHasTickets();

            ticketOrder.Ticket_TimeSlot_Activity_Id = model.Activity.Id;
            ticketOrder.Remarks = model.Order.OrderHasTickets[0].Remarks;
            ticketOrder.Ticket_TimeSlot_StartTime = model.Day.Date + model.Time.TimeOfDay;
            ticketOrder.Ticket_Type = TicketType.Single;
            ticketOrder.Amount      = model.NumberOfAdults;

            ticketOrder.Ticket = ticketRepository.GetTicket(activity, startTime, ticketOrder.Ticket_Type);

            ticketOrder.TotalPrice = model.NumberOfAdults * ticketOrder.Ticket.Price;

            order.OrderHasTickets.Add(ticketOrder);


            if (model.NumberOfKids > 0)
            {
                OrderHasTickets to = new OrderHasTickets();

                to.Ticket_TimeSlot_Activity_Id = model.Activity.Id;
                to.Remarks = model.Order.OrderHasTickets[0].Remarks;
                to.Ticket_TimeSlot_StartTime = model.Day.Date + model.Time.TimeOfDay;
                to.Ticket_Type = TicketType.Child;
                to.Amount      = model.NumberOfKids;

                to.Ticket     = ticketRepository.GetTicket(activity, startTime, to.Ticket_Type);
                to.TotalPrice = model.NumberOfKids * ticketOrder.Ticket.Price;
                order.OrderHasTickets.Add(to);
            }

            Session["order"] = order;

            BasketHelper.getInstance().checkBasket(HttpContext);
            return(Redirect(ControllerContext.HttpContext.Request.UrlReferrer.ToString()));
        }
        protected void Page_PreRender(object sender, EventArgs e)
        {
            bool hasSubscriptions     = BasketHelper.HasRecurringSubscriptions(AbleContext.Current.User.Basket);
            bool newSubFeatureEnabled = AbleContext.Current.Store.Settings.ROCreateNewOrdersEnabled;

            if (!hasSubscriptions || !newSubFeatureEnabled)
            {
                IPaymentProvider amazonProvider = GetAmazonProvider();
                if (amazonProvider != null)
                {
                    MethodInfo  buttonMethod   = amazonProvider.GetType().GetMethod("GetCheckoutButton");
                    object[]    parameters     = new object[] { AbleContext.Current.User.Basket };
                    PlaceHolder checkoutButton = (PlaceHolder)buttonMethod.Invoke(amazonProvider, parameters);
                    this.ButtonPanel.Controls.Add(checkoutButton);
                }
            }
        }
示例#20
0
        public bool ApplyCampaignToBasket(Guid basketId, CampaignModel campaign)
        {
            var basket = GetBasket(basketId);

            if (basket == null)
            {
                throw new ArgumentNullException("Basket is not found");
            }

            if (campaign != null && basket.Products.Count >= campaign.MinimumProductCount)
            {
                var affectedProductIds = BasketHelper.CheckCampaignInBasket(basket, campaign);
                if (affectedProductIds.Any(a => a == Guid.Empty) || affectedProductIds.Count <= 0)
                {
                    Console.WriteLine("{0} could not be applied", campaign.Title);
                    return(false);
                }

                foreach (var product in basket.Products)
                {
                    var checkProduct = affectedProductIds.Any(a => a == product.Key.Id);
                    if (checkProduct && product.Key != null && product.Value > 0)
                    {
                        decimal campaignDiscount = decimal.Zero;
                        switch (campaign.Type)
                        {
                        case CampaignType.Rate:
                            campaignDiscount = (((product.Key.Price) * campaign.Amount) / 100) *
                                               product.Value;
                            break;

                        case CampaignType.Total:
                            campaignDiscount = campaign.Amount * product.Value;
                            break;
                        }

                        basket.DiscountTotal += campaignDiscount;
                    }
                }
                basket.Campaigns.Add(campaign);
                return(true);
            }
            Console.WriteLine("Campaign could not be applied. Please check campaign or product minimum count condition");
            return(false);
        }
        public HttpResponseMessage checkOut()
        {
            try
            {
                BasketHelper.checkOut();
            }
            catch (Exception e)
            {
                var exResponse = new HttpResponseMessage(HttpStatusCode.BadRequest)
                {
                    Content      = new StringContent("Cannot complete check out"),
                    ReasonPhrase = e.Message
                };
                throw new HttpResponseException(exResponse);
            }

            return(Request.CreateResponse(HttpStatusCode.OK));
        }
示例#22
0
        public async Task OnGetAsync()
        {
            MainLayout.ShoppingBasket = BasketHelper.GetBasket(HttpContext.Session);
            ViewData["MainLayout"]    = MainLayout;


            Highlighted = await _ds.GetHighlightedProductsAsync();

            OnSale = await _ds.GetProductsOnSaleAsync();

            Latest = await _ds.GetLatestProductsAsync();

            BestSellingProducts = _ds
                                  .GetBestSellingProducts()

                                  .Select(p => _ds
                                          .GetProductById(p.ProductId));
        }
示例#23
0
        public ActionResult Delete(int ohdId)
        {
            Order order = (Order)Session["order"];

            foreach (var orderhasticket in order.OrderHasTickets)
            {
                if (orderhasticket.Ticket_TimeSlot_Activity_Id == ohdId)
                {
                    order.OrderHasTickets.Remove(orderhasticket);
                    break;
                }
            }
            Session["order"] = order;

            BasketHelper.getInstance().checkBasket(HttpContext);

            return(RedirectToAction("Basket"));
        }
        // PUT: api/Basket/5
        public HttpResponseMessage Put(int id)
        {
            try
            {
                BasketHelper.UpdateCheckOut(id);
            }
            catch (Exception e)
            {
                var exResponse = new HttpResponseMessage(HttpStatusCode.BadRequest)
                {
                    Content      = new StringContent("Cannot Update Item in Cart"),
                    ReasonPhrase = e.Message
                };
                throw new HttpResponseException(exResponse);
            }

            return(Request.CreateResponse(HttpStatusCode.OK));
        }
        // POST: api/Basket
        public HttpResponseMessage Post([FromBody] BasketItem item)
        {
            try
            {
                BasketHelper.AddToCart(item);
            }
            catch (Exception e)
            {
                var exResponse = new HttpResponseMessage(HttpStatusCode.InternalServerError)
                {
                    Content      = new StringContent("Cannot Add Item to cart"),
                    ReasonPhrase = e.Message
                };
                throw new HttpResponseException(exResponse);
            }

            return(Request.CreateResponse(HttpStatusCode.OK));
        }
        private bool HasRecurringSubscriptions()
        {
            bool hasBasket = this.Basket != null;
            bool hasOrder  = this.Order != null;

            if (hasBasket)
            {
                return(BasketHelper.HasRecurringSubscriptions(this.Basket));
            }
            else if (hasOrder)
            {
                return(OrderHelper.HasRecurringSubscriptions(this.Order));
            }
            else
            {
                return(false);
            }
        }
        public async Task <IActionResult> OnGetCheckStockAsync()
        {
            Basket = BasketHelper.GetBasket(HttpContext.Session);

            if (Basket.Items.Count == 0)
            {
                IsNotEmpty = false;
                return(Page());
            }
            else
            {
                IsNotEmpty = true;
            }

            Basket = BasketHelper.GetBasket(HttpContext.Session);

            foreach (var item in Basket.Items)
            {
                int stockBalance = await _ds.GetProductStockAsync(item.ProductId);

                if (item.Quantity > stockBalance)
                {
                    int length = item.Quantity - stockBalance;

                    for (int i = 0; i < length; i++)
                    {
                        BasketHelper.ModifyItem(HttpContext.Session, item.ProductId, false, false);
                    }
                    StockStatusOK      = false;
                    StockStatusUpdated = true;
                }
            }

            if (StockStatusOK)
            {
                return(RedirectToPage("/Checkout"));
            }

            Basket   = BasketHelper.GetBasket(HttpContext.Session);
            Products = await _ds.GetProductsAsync();

            MainLayout.ShoppingBasket = Basket;
            return(Page());
        }
示例#28
0
        public static void UpdateSourceToBasket(bool isAffiliate = false, bool isUpgradeFlow = false)
        {
            //Update source, dealer number, dealer name in basket to display in confirmation pdf
            var basketId       = isUpgradeFlow ? BasketHelper.GetUpgradeBasketId() : BasketHelper.GetBasketId();
            var loggedUserData = LoggedUser;

            if (loggedUserData != null && IsDealerOrAgent)
            {
                var source      = string.Empty;
                var dealerId    = new Guid();
                var createdBy   = loggedUserData.Name;
                var createdName = loggedUserData.Name + " " + loggedUserData.Name;

                if (IsDealer)
                {
                    source = "Dealer";
                    var company = Configuration.ConfigurationHelper.**WsConfig.Company;
                    if (company != Company.TVVLAANDEREN && company != Company.TELESAT)
                    {
                        dealerId = GetDealerId(createdBy);
                    }
                    // This is only required for HDAustria for now. As we are yet to map the dealers to correct groups in TVV/TSAT for campaigns.
                }
                else if (IsAgent)
                {
                    source = "Agent";
                }

                if (dealerId == new Guid())
                {
                    dealerId = BasketHelper.GetDefaultDealerId();
                }

                var updateBasketInfo = new CreateBasketDTO
                {
                    BasketId    = basketId,
                    Source      = source,
                    CreatedBy   = createdBy,
                    CreatedName = (isAffiliate ? "Affiliate-" : string.Empty) + createdName,
                    DealerId    = dealerId
                };
                **.ServiceBus.Extern.Basket.GetService().UpdateSourceToBasket(updateBasketInfo);
            }
        }
        // GET: api/Basket
        public HttpResponseMessage Get()
        {
            List <BasketItem> basketItems = null;

            try
            {
                basketItems = BasketHelper.linqShoppingCart();
            } catch (Exception e)
            {
                var exResponse = new HttpResponseMessage(HttpStatusCode.InternalServerError)
                {
                    Content      = new StringContent("Cannot get cart items"),
                    ReasonPhrase = e.Message
                };
                throw new HttpResponseException(exResponse);
            }

            return(Request.CreateResponse(HttpStatusCode.OK, basketItems));
        }
        public async Task <IActionResult> OnGetAsync(string toggleId = null)
        {
            if (!string.IsNullOrEmpty(toggleId))
            {
                Tags = AllergyTagHelper.LoadTags(HttpContext.Session);
                var tag = Tags.FirstOrDefault(t => t.Value == toggleId);
                tag.Selected = !tag.Selected;
                AllergyTagHelper.SaveTags(HttpContext.Session, Tags);
                return(RedirectToPage("./Categories", new { CategoryId = CategoryId }));
            }
            Categories = await _ds.GetProductCategoriesAsync();

            Tags = AllergyTagHelper.LoadTags(HttpContext.Session);
            if (Tags == null)
            {
                Tags = await _ds.GetTagsListAsync();

                AllergyTagHelper.SaveTags(HttpContext.Session, Tags);
            }
            if (CategoryId != null)
            {
                Products = await _ds.GetProductsByCategoryAsync(CategoryId.Value);

                CategoryName = Categories.FirstOrDefault(c => c.Id == CategoryId).Name;
                if (CategoryName == "Färdiga paket")
                {
                    Products = Products.OrderBy(o => o.Price);
                }
            }
            else
            {
                var list = await _ds.GetProductsAsync();

                Products = list.Where(c => c.Category.Name != "Färdiga paket").OrderBy(o => o.Name);
            }
            MainLayout.ShoppingBasket = BasketHelper.GetBasket(HttpContext.Session);
            if (CategoryName != "Färdiga paket")
            {
                Products = _ds.FilteredProducts(Products, Tags);
            }
            ViewData["MainLayout"] = MainLayout;
            return(Page());
        }