public Products_ByPrice()
            {
                #region Step_3
                Map = products => from product in products
                      select new IndexEntry
                {
                    ProductName   = product.Name,
                    OriginalPrice = product.PricePerUnit,

                    SalePrice = DiscountUtils.CalcSalePrice(product.PricePerUnit),
                    // Code behind:
                    // public static decimal CalcSalePrice(decimal price)
                    // {
                    //    return price - price / 100M * 25M;
                    //  }
                    ProfitPrice = DiscountUtils.CalcProfitPrice(product.PricePerUnit)
                                  // Code behind:
                                  // public static decimal CalcSalePrice(decimal price)
                                  // {
                                  //    return price + price / 100M * 25M;
                                  //  }
                };
                #endregion

                #region Step_4
                AdditionalSources = new Dictionary <string, string>
                {
                    {
                        "DiscountLogic", System.IO.File.ReadAllText(
                            Path.Combine(AppContext.BaseDirectory, "MyAdditionalSourceFile.cs"))
                    }
                };
                #endregion
            }
        public void BindGrid()
        {
            try
            {
                cartSub.Style.Remove("text-decoration");
                discSub.Text = "";

                if (Request.Cookies.Get("cartKey") != null)
                {
                    Guid cartKey = Guid.Parse(Request.Cookies["cartKey"].Value);

                    List <SqlParameter> p = new List <SqlParameter>();
                    p.Add(new SqlParameter("@GUID", cartKey));

                    DataTable cartDetails = DB.Get("CartSummaryGet", p.ToArray());
                    CartView.DataSource = cartDetails;

                    if (cartDetails != null && cartDetails.Rows.Count > 0)
                    {
                        p = new List <SqlParameter>();
                        p.Add(new SqlParameter("@CacheID", cartKey));

                        decimal   Subtotal = 0M;
                        DataTable dtSub    = DB.Get("CartSubtotalGet", p.ToArray());
                        if (dtSub != null && dtSub.Rows.Count > 0)
                        {
                            string  strSub     = dtSub.Rows[0][0].ToString();
                            decimal tryDecimal = 0M;
                            if (decimal.TryParse(strSub, out tryDecimal))
                            {
                                Subtotal = tryDecimal;
                            }
                        }

                        cartSub.Text = "$" + Subtotal.ToString("0.00");

                        DataRow dr = cartDetails.Rows[0];
                        if (!string.IsNullOrEmpty(dr["DiscountID"].ToString()))
                        {
                            decimal CartTotal = DiscountUtils.CalculateDiscountTotal((int)dr["DiscountID"], cartKey);
                            cartSub.Style.Add("text-decoration", "line-through");
                            discSub.Text = "W/ Discount: $" + CartTotal.ToString("0.00");
                        }
                    }
                    else
                    {
                        cartSub.Text = "$0.00";
                    }
                }
                else
                {
                    CartView.DataSource = string.Empty;
                }
                CartView.DataBind();
            }
            catch (Exception ex)
            {
                LoggingUtil.InsertError(ex);
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            lDiscount.Visible = false;
            if (!string.IsNullOrWhiteSpace(Request.Params["paymentId"].ToString()) && !string.IsNullOrWhiteSpace(Request.Params["PayerID"].ToString()))
            {
                paymentid.Value = Request.Params["paymentId"].ToString();
                payerid.Value   = Request.Params["PayerID"].ToString();
            }
            else
            {
                Response.Redirect("~/Shop", false);
            }

            if (Request.Cookies["cartKey"] != null)
            {
                Guid cartKey          = Guid.Parse(Request.Cookies["cartKey"].Value);
                List <SqlParameter> p = new List <SqlParameter>();
                p.Add(new SqlParameter("@GUID", cartKey));

                DataTable cartDetails = DB.Get("CartSummaryGet", p.ToArray());
                CartView.DataSource = cartDetails;
                CartView.DataBind();

                p = new List <SqlParameter>();
                p.Add(new SqlParameter("@CacheID", cartKey));

                decimal   Subtotal = 0M;
                DataTable dtSub    = DB.Get("CartSubtotalGet", p.ToArray());
                if (dtSub != null && dtSub.Rows.Count > 0)
                {
                    string  strSub     = dtSub.Rows[0][0].ToString();
                    decimal tryDecimal = 0M;
                    if (decimal.TryParse(strSub, out tryDecimal))
                    {
                        Subtotal = tryDecimal;
                    }
                }

                DataRow dr       = cartDetails.Rows[0];
                decimal Discount = 0M;
                if (!string.IsNullOrEmpty(dr["DiscountID"].ToString()))
                {
                    Discount = DiscountUtils.CalculateDiscountTotal((int)dr["DiscountID"], cartKey);
                }

                decimal Shipping = ScalablePressUtils.GetShippingQuote(cartKey);
                if (Shipping > 0M)
                {
                    lSubTotal.Text = "Subtotal: $" + Subtotal.ToString("0.00");
                    if (Discount > 0)
                    {
                        lDiscount.Text    = "Discount: -$" + Discount.ToString("0.00");
                        lDiscount.Visible = true;
                    }
                    lShipTotal.Text = "S&H: $" + Shipping.ToString("0.00");
                    lTotal.Text     = "Total: $" + Math.Round(Subtotal - Discount + Shipping, 2, MidpointRounding.AwayFromZero).ToString("0.00");
                }
            }
        }
示例#4
0
        protected void btDiscount_Click(object sender, EventArgs e)
        {
            lDiscount.Text = "";
            if (Request.Cookies.Get("cartKey") != null)
            {
                Guid cartKey = Guid.Parse(Request.Cookies["cartKey"].Value);

                string discountcode = tbCode.Text;
                int    DiscountID   = 0;
                if (!string.IsNullOrWhiteSpace(discountcode))
                {
                    if (DiscountUtils.IsValidDiscount(discountcode, out DiscountID))
                    {
                        if (DiscountUtils.ApplyDiscountToCart(DiscountID, cartKey))
                        {
                            lDiscount.Text = "Discount code applied!";
                            cgCurrent.BindGrid();
                        }
                        else
                        {
                            lDiscount.Text = "Unknown error has occured";
                        }
                    }
                    else
                    {
                        lDiscount.Text = "Discount code is not valid";
                    }
                }
                else
                {
                    lDiscount.Text = "Discount code is empty";
                }
            }
            else
            {
                lDiscount.Text = "Cart cannot be empty";
            }
        }