コード例 #1
0
        protected void OnTextChangedArticleAmount(object sender, EventArgs e)
        {
            var textBox      = (TextBox)sender;
            var repeaterItem = (RepeaterItem)textBox.Parent;

            short quantity;
            var   lblError        = (Label)repeaterItem.FindControl("lblQuantityError");
            var   hfOrginalAmount = (HiddenField)repeaterItem.FindControl("hfOrginalAmount");

            if (!short.TryParse(textBox.Text, out quantity) || quantity < 1)
            {
                textBox.Text = hfOrginalAmount.Value;

                lblError.Text    = "Not a valid amount:";
                lblError.Visible = true;

                return;
            }
            else
            {
                lblError.Visible = false;
            }

            var hfArticleID = (HiddenField)repeaterItem.FindControl("hfArticleID");
            var productID   = int.Parse(hfArticleID.Value);

            var shopingCart = (ShopingCart)Session[WebShopController.SessionKeyShopingCart];

            WebShopController.AddOrUpdateProductToCart(ref shopingCart, productID, quantity, true);

            UppdateCartAndSession(shopingCart);
        }
コード例 #2
0
        protected void btnAddToCart_Click(object sender, EventArgs e)
        {
            ShopingCart shopingCart = (ShopingCart)Session[WebShopController.SessionKeyShopingCart];

            if (shopingCart == null)
            {
                shopingCart = new ShopingCart();
            }

            int productID = -1;

            if (!int.TryParse(hfActiveProduct.Value, out productID))
            {
                // TODO: Implementera felkod om ProductID inte är en sifra (HidenField går inte att manupura på framsidan(?)).
            }

            short productQty;

            if (!short.TryParse(txtArticleAmount.Text, out productQty))
            {
                // TODO: Implementera felkod om antalet inte är en sifra.
            }

            if (WebShopController.AddOrUpdateProductToCart(ref shopingCart, productID, productQty))
            {
                //TODO: Implementera felkod om varan inte kan läggas i korgen.
            }

            Session[WebShopController.SessionKeyShopingCart] = shopingCart;

            WebShopController.UppdateMiniCart(Master, shopingCart);
        }
コード例 #3
0
        private void UppdateCartAndSession(ShopingCart shopingCart)
        {
            Session[WebShopController.SessionKeyShopingCart] = shopingCart;

            FillCartItemsAndPrice(shopingCart);

            WebShopController.UppdateMiniCart(Master, shopingCart);
        }
コード例 #4
0
        private void FillShopingCart()
        {
            using (var db = new AvensiaWebshopEntities())
            {
                var shopingCart = (ShopingCart)Session[WebShopController.SessionKeyShopingCart] ?? new ShopingCart();

                WebShopController.UppdateMiniCart(this, shopingCart);
            }
        }
コード例 #5
0
        private void ApplicationErrorMail(Exception ex)
        {
            string errorMessage = "Error description:\r\n" + ex;

            var fromAddress = new MailAddress("*****@*****.**", "FlyCycle Bot");
            var toAddress   = new MailAddress("*****@*****.**");

            var subject = "Sidfel!";
            var body    = errorMessage + " Please reestablish the webpage asap";

            WebShopController.SendMail(fromAddress, toAddress, subject, body, MailPriority.High);
        }
コード例 #6
0
        private void SendForm()
        {
            MailAddress fromAddress = new MailAddress(txtEmail.Text, $"{txtFirstName.Text} {txtForLastName.Text}");
            string      txtFromBody =
                $"Förnamn:{txtFirstName.Text},\n\r" +
                $"Efternamn:{txtForLastName.Text}\n\r" +
                $"E-post:{txtEmail.Text}\n\r" +
                $"Mail inehåll:\n\r" + txtMailContent.Text;
            string      DroppDownAlternative = ddlOptions.Text;
            MailAddress toAddress            = new MailAddress("*****@*****.**", "FlyCycle Suport");

            WebShopController.SendMail(fromAddress, toAddress, DroppDownAlternative, txtFromBody);
        }
コード例 #7
0
        protected void repBasket_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            var shopingCart = (ShopingCart)Session[WebShopController.SessionKeyShopingCart];

            switch (e.CommandName)
            {
            case "RemoveItem":
                WebShopController.RemoveProductFromCart(ref shopingCart, int.Parse(e.CommandArgument.ToString()));
                break;
            }

            UppdateCartAndSession(shopingCart);
            FillCartItemsAndPrice(shopingCart);
        }
コード例 #8
0
        private void FillProductInfo(int productModelId, int productID)
        {
            using (var db = new AvensiaWebshopEntities())
            {
                var products =
                    db.vProductAndDescripttionExtendedENOnly.Where(p => p.ProductModelID == productModelId)
                    .OrderBy(product => product.Name);

                var activeProduct =
                    (productID < 0)
                        ? products.FirstOrDefault()
                        : products.SingleOrDefault(p => p.ProductID == productID);

                hfActiveProduct.Value = activeProduct.ProductID.ToString();

                ltPageHeader.Text =
                    $"{activeProduct.ProductModel} {(activeProduct.Size != null ? $"Storlek {activeProduct.Size} " : string.Empty)}{(activeProduct.Color ?? string.Empty)}";

                imgMainImage.ImageUrl      = $"/Media.ashx?image={activeProduct.LargePhotoFileName}";
                imgMainImage.AlternateText = activeProduct.Name;

                lbArticlePrice.Text = $"{activeProduct.ListPrice:N2}";

                if (activeProduct.DiscountActive != null && activeProduct.DiscountActive.Value)
                {
                    ltArticleOrginalPrice.Text = $"{activeProduct.ListPrice:N2}";

                    lbArticlePrice.Text =
                        $"{WebShopController.GetProductPrice(activeProduct):N2}";

                    lbArticlePrice.CssClass           = "articleDiscountedPrice";
                    panelArticleOriginalPrice.Visible = true;
                }
                else
                {
                    lbArticlePrice.CssClass = string.Empty;

                    panelArticleOriginalPrice.Visible = false;
                }

                ltArticleDescription.Text = activeProduct.Description;

                ltArticleNumber.Text = activeProduct.ProductNumber;

                if (products.Count() > 1 && (activeProduct.Color != null || activeProduct.Size != null))
                {
                    UpdateArticleChoiseDropDown(products, activeProduct);
                }
            }
        }
コード例 #9
0
        private void SendComfirmationMail(SalesOrderHeader salesOrderHeader, Customer customer)
        {
            try
            {
                var subject = "Thank you for ordering form FlyCycles";
                var body    = $"We have recived your order with the order ID {salesOrderHeader.SalesOrderNumber}.\r\n" +
                              $"Best regards\r\n" +
                              $"FlyCycles";

                WebShopController.SendMail(WebShopController.SuportMail,
                                           new MailAddress(customer.EmailAddress, $"{customer.FirstName} {customer.LastName}"), subject, body);
            }
            catch (Exception ex)
            {
                // TODO: Logg order confirm mail error.

                panelMail.Visible      = false;
                panelMailError.Visible = true;
            }
        }
コード例 #10
0
 private void LoadCampaigns()
 {
     repCampaign.DataSource = WebShopController.GetCampaigns(1);
     repCampaign.DataBind();
 }
コード例 #11
0
 private void PopulatePopularProduct()
 {
     repPopularItems.DataSource = WebShopController.GetPopularProducts(6);
     repPopularItems.DataBind();
 }