private void SendMail(BusinessEntities.Orders order) { StringBuilder sb = new StringBuilder(); sb = sb.Append(Core.Utility.ReadFile(PhysicalApplicationPath + HtmlFolder + "NewOrder.html")); sb.Replace("{URL}", BaseSiteUrl); sb.Replace("{ORDERNUMBER}", order.OrderID.ToString()); sb.Replace("{ORDERDATE}", GetStoreTime().ToString("MM/dd/yyyy HH:mm")); sb.Replace("{FULLNAME}", txtFirstName.Text + " " + txtLastName.Text); sb.Replace("{ADDRESS}", txtAddress.Text); sb.Replace("{CITY}", txtCity.Text); sb.Replace("{STATE}", txtState.Text); sb.Replace("{ZIPCODE}", txtZipCode.Text); sb.Replace("{PHONE}", txtTelephone.Text); if (!String.IsNullOrEmpty(txtMobile.Text)) { sb.Replace("{MOBILE}", !String.IsNullOrEmpty(txtTelephone.Text) ? " - " + txtMobile.Text : txtMobile.Text); } else { sb.Replace("{MOBILE}", ""); } if (order.OrderTypeID == BusinessEntities.OrderType.Deliver) { sb.Replace("{ORDERDELIVERY}", "Pizzaness Delivery"); } else { sb.Replace("{ORDERDELIVERY}", "Self Pickup"); } if (order.PaymentMethod == BusinessEntities.PaymentType.OnlinePayment) { sb.Replace("{PAYMENTMETHOD}", "Online Payment"); } else { sb.Replace("{PAYMENTMETHOD}", "Cash Payment"); } StringBuilder finalTemplate = new StringBuilder(); for (int i = 0; i < order.OrderDetailsList.Count; i++) { BusinessEntities.OrderDetails orderDetails = order.OrderDetailsList.ElementAt(i); StringBuilder newTemplate = new StringBuilder(); newTemplate.Append(Core.Utility.ReadFile(PhysicalApplicationPath + HtmlFolder + "OrderDetailTemplate.html")); newTemplate.Replace("{ITEMQUANTITY}", orderDetails.Quantity.ToString()); newTemplate.Replace("{PRODUCTNAME}", orderDetails.ProductName); newTemplate.Replace("{PRODUCTTYPE}", !String.IsNullOrEmpty(orderDetails.CategoryName) ? orderDetails.CategoryName : ""); newTemplate.Replace("{PRICE}", orderDetails.Price.ToString()); newTemplate.Replace("{RECIPENTNAME}", orderDetails.RecipientName); newTemplate.Replace("{INSTRUCTION}", orderDetails.Comments); StringBuilder optionTemplate = new StringBuilder(); foreach (BusinessEntities.OrderDetailOptions obj in SessionOrderDetailOptionList.ElementAt(i)) { //optionTemplate.Append(Core.Utility.ReadFile(PhysicalApplicationPath + HtmlFolder + "OptionTemplate.html")); //optionTemplate.Replace("{OPTIONSTYPE}", obj.ProductOptionTypeName); optionTemplate.Append(obj.ProductOptionName + ","); } StringBuilder toppings = new StringBuilder(); String previousAddonTypeName = String.Empty; StringBuilder toppingTemplate = new StringBuilder(); if (orderDetails.IsGroupProduct) { List <BusinessEntities.OrderDetailSubProduct> subProducts = orderDetails.OrderDetailSubProducts; StringBuilder finalSubProductTemplate = new StringBuilder(); foreach (BusinessEntities.OrderDetailSubProduct subProduct in subProducts) { StringBuilder subProductTemplate = new StringBuilder(); subProductTemplate.Append(Core.Utility.ReadFile(PhysicalApplicationPath + HtmlFolder + "SubProductTemplate.html")); subProductTemplate.Replace("{PRODUCTNAME}", subProduct.ProductName); subProductTemplate.Replace("{RECIPENTNAME}", subProduct.RecipientName); subProductTemplate.Replace("{INSTRUCTION}", subProduct.Comments); StringBuilder subProductOptionTemplate = new StringBuilder(); if (subProduct.OrderDetailSubProductOptions != null) { foreach (BusinessEntities.OrderDetailSubProductOption subProductOption in subProduct.OrderDetailSubProductOptions) { //subProductOptionTemplate.Append(Core.Utility.ReadFile(PhysicalApplicationPath + HtmlFolder + "OptionTemplate.html")); //subProductOptionTemplate.Replace("{OPTIONSTYPE}", subProductOption.ProductOptionTypeName); subProductOptionTemplate.Append(subProductOption.ProductOptionName + ","); } } toppings = new StringBuilder(); previousAddonTypeName = String.Empty; toppingTemplate = new StringBuilder(); foreach (BusinessEntities.OrderDetailSubProductAdon obj in subProduct.OrderDetailSubProductAdons) { if (obj.SelectedAdonOption != 0) { if (!obj.AdonTypeName.Equals(previousAddonTypeName)) { toppings.Append(" <b>" + obj.AdonTypeName + ":</b>"); previousAddonTypeName = obj.AdonTypeName; } toppings.Append(Utility.GetSubString(toppingTemplate.ToString(), "<!-- Toppings-->", "<!-- End Topping-->", false)); if (obj.IsDoubleSelected) { toppings.Replace("{DOUBLE}", "Two times "); } else { toppings.Replace("{DOUBLE}", ""); } toppings.Replace("{NAME}", obj.AdonName); toppings.Replace("{OPTION}", ((BusinessEntities.SelectedOption)obj.SelectedAdonOption).ToString()); } } if (!String.IsNullOrEmpty(toppings.ToString())) { String subString = Utility.GetSubString(toppingTemplate.ToString(), "<!-- Toppings-->", "<!-- End Topping-->", true); toppingTemplate.Replace(subString, toppings.ToString()); } subProductTemplate.Replace("<!-- Options -->", subProductOptionTemplate.ToString().TrimEnd(new char[] { ',' })); subProductTemplate.Replace("<!-- Topping -->", toppingTemplate.ToString()); finalSubProductTemplate.Append(subProductTemplate.ToString()); } newTemplate.Replace("<!--SubProducts-->", finalSubProductTemplate.ToString()); toppings = new StringBuilder(); toppingTemplate = new StringBuilder(); } foreach (BusinessEntities.OrderDetailAdOns obj in SessionOrderAdonList.ElementAt(i)) { if (obj.SelectedAdonOption != 0) { if (!obj.AdonTypeName.Equals(previousAddonTypeName)) { toppings.Append(" <b>" + obj.AdonTypeName + ":</b>"); previousAddonTypeName = obj.AdonTypeName; } toppings.Append(obj.AdonName); if (obj.SelectedAdonOption == SelectedOption.FirstHalf) { if (obj.IsDoubleSelected) { toppings.Append("(Left 2 Times),"); } else { toppings.Append("(Left),"); } } else if (obj.SelectedAdonOption == SelectedOption.SecondHalf) { if (obj.IsDoubleSelected) { toppings.Append("(Right 2 Times),"); } else { toppings.Append("(Right),"); } } else { toppings.Append(","); } } } if (!String.IsNullOrEmpty(toppings.ToString())) { //String subString = Utility.GetSubString(toppingTemplate.ToString(), "<!-- Toppings-->", "<!-- End Topping-->", true); toppingTemplate.Append(toppings.ToString()); } newTemplate.Replace("<!--OrderDetailOptions-->", optionTemplate.ToString().TrimEnd(new char[] { ',' })); newTemplate.Replace("<!--OrderDetailToppings-->", toppingTemplate.ToString().TrimEnd(new char[] { ',' })); finalTemplate.Append(newTemplate.ToString()); //finalTemplate.Append(optionTemplate.ToString()); //finalTemplate.Append(toppingTemplate.ToString()); } String DetailTemplate = Utility.GetSubString(sb.ToString(), "<!--DETAIL TEMPLATE-->", "<!--END DETAIL TEMPLATE-->", true); DetailTemplate = DetailTemplate.Replace("<!--DETAILTEMPLATE-->", finalTemplate.ToString()); sb.Replace(Utility.GetSubString(sb.ToString(), "<!--DETAIL TEMPLATE-->", "<!--END DETAIL TEMPLATE-->", true), DetailTemplate.ToString()); sb.Replace("{TIP}", order.LineTip.ToString("C2")); sb.Replace("{TOTALPRICE}", order.OrderTotal.ToString("C2")); try { var mail = new Mail(); mail.Subject = "New Order"; mail.Sender = ConfigurationManager.AppSettings["DonotReplyEmail"]; mail.Receiver = SessionUser.Username; mail.MailCc = string.Empty; mail.MailBcc = ConfigurationManager.AppSettings["OrderReceiveEmail"]; mail.MailBody = sb.ToString(); mail.IsHtml = true; mail.ReferenceId = order.OrderID; mail.ReferenceType = "Order"; mailManager.AddMail(mail); } catch (Exception ex) { throw ex; } }
private void SendFax(BusinessEntities.Orders order) { StringBuilder Fax = new StringBuilder(); Fax = Fax.Append(Core.Utility.ReadFile(PhysicalApplicationPath + HtmlFolder + "Fax.html")); Fax.Replace("{URL}", BaseSiteUrl); Fax.Replace("{ORDERNUMBER}", order.OrderID.ToString()); Fax.Replace("{ORDERDATE}", GetStoreTime().ToString("MM/dd/yyyy HH:mm")); Fax.Replace("{FULLNAME}", txtFirstName.Text + " " + txtLastName.Text); Fax.Replace("{ADDRESS}", txtAddress.Text + " " + txtCity.Text + ", " + txtZipCode.Text + ", " + txtState.Text); Fax.Replace("{PHONE}", txtTelephone.Text); if (!String.IsNullOrEmpty(txtMobile.Text)) { Fax.Replace("{MOBILE}", !String.IsNullOrEmpty(txtTelephone.Text) ? " - " + txtMobile.Text : txtMobile.Text); } else { Fax.Replace("{MOBILE}", ""); } if (order.OrderTypeID == BusinessEntities.OrderType.Deliver) { Fax.Replace("{ORDERDELIVERY}", "Pizzaness Delivery"); } else { Fax.Replace("{ORDERDELIVERY}", "Self Pickup"); } if (order.PaymentMethod == BusinessEntities.PaymentType.OnlinePayment) { Fax.Replace("{PAYMENTMETHOD}", "Online Payment"); } else { Fax.Replace("{PAYMENTMETHOD}", "Cash Payment"); } StringBuilder finalTemplate = new StringBuilder(); for (int i = 0; i < order.OrderDetailsList.Count; i++) { BusinessEntities.OrderDetails orderDetail = order.OrderDetailsList.ElementAt(i); StringBuilder newTemplate = new StringBuilder(); newTemplate.Append(Core.Utility.ReadFile(PhysicalApplicationPath + HtmlFolder + "FaxOrderDetailTemplate.html")); newTemplate.Replace("{ITEMNUMBER}", (i + 1).ToString()); newTemplate.Replace("{PRODUCTTYPE}", !String.IsNullOrEmpty(orderDetail.CategoryName) ? orderDetail.CategoryName : ""); newTemplate.Replace("{PRODUCTNAME}", orderDetail.ProductName); newTemplate.Replace("{ITEMQUANTITY}", orderDetail.Quantity.ToString()); newTemplate.Replace("{ITEMPRICE}", orderDetail.ItemTotal.ToString("C2")); newTemplate.Replace("{RECIPENTNAME}", orderDetail.RecipientName); newTemplate.Replace("{INSTRUCTION}", orderDetail.Comments); StringBuilder optionTemplate = new StringBuilder(); foreach (BusinessEntities.OrderDetailOptions obj in SessionOrderDetailOptionList.ElementAt(i)) { optionTemplate.Append(Core.Utility.ReadFile(PhysicalApplicationPath + HtmlFolder + "OptionTemplate.html")); optionTemplate.Replace("{OPTIONSTYPE}", obj.ProductOptionTypeName); optionTemplate.Replace("{OPTIONS}", obj.ProductOptionName); } StringBuilder toppings = new StringBuilder(); String previousAddonTypeName = String.Empty; StringBuilder toppingTemplate = new StringBuilder(); if (orderDetail.IsGroupProduct) { List <BusinessEntities.OrderDetailSubProduct> subProducts = orderDetail.OrderDetailSubProducts; StringBuilder finalSubProductTemplate = new StringBuilder(); foreach (BusinessEntities.OrderDetailSubProduct subProduct in subProducts) { StringBuilder subProductTemplate = new StringBuilder(); subProductTemplate.Append(Core.Utility.ReadFile(PhysicalApplicationPath + HtmlFolder + "SubProductTemplate.html")); subProductTemplate.Replace("{PRODUCTNAME}", subProduct.ProductName); subProductTemplate.Replace("{RECIPENTNAME}", subProduct.RecipientName); subProductTemplate.Replace("{INSTRUCTION}", subProduct.Comments); StringBuilder subProductOptionTemplate = new StringBuilder(); if (subProduct.OrderDetailSubProductOptions != null) { foreach (BusinessEntities.OrderDetailSubProductOption subProductOption in subProduct.OrderDetailSubProductOptions) { subProductOptionTemplate.Append(Core.Utility.ReadFile(PhysicalApplicationPath + HtmlFolder + "OptionTemplate.html")); subProductOptionTemplate.Replace("{OPTIONSTYPE}", subProductOption.ProductOptionTypeName); subProductOptionTemplate.Replace("{OPTIONS}", subProductOption.ProductOptionName); } } toppings = new StringBuilder(); previousAddonTypeName = String.Empty; toppingTemplate = new StringBuilder(); int j = 1; foreach (BusinessEntities.OrderDetailSubProductAdon obj in subProduct.OrderDetailSubProductAdons) { if (obj.SelectedAdonOption != 0) { if (!obj.AdonTypeName.Equals(previousAddonTypeName)) { if (!String.IsNullOrEmpty(toppings.ToString())) { String subString = Utility.GetSubString(toppingTemplate.ToString(), "<!-- Toppings-->", "<!-- End Topping-->", true); toppingTemplate.Replace(subString, toppings.ToString()); } toppings = new StringBuilder(); toppingTemplate.Append( Core.Utility.ReadFile(PhysicalApplicationPath + HtmlFolder + "ToppingTemplate.html")); toppingTemplate.Replace("{TOPPINGTYPE}", obj.AdonTypeName); previousAddonTypeName = obj.AdonTypeName; } toppings.Append(Utility.GetSubString(toppingTemplate.ToString(), "<!-- Toppings-->", "<!-- End Topping-->", false)); if (obj.IsDoubleSelected) { toppings.Replace("{DOUBLE}", "Two times "); } else { toppings.Replace("{DOUBLE}", ""); } toppings.Replace("{NAME}", obj.AdonName); toppings.Replace("{OPTION}", ((BusinessEntities.SelectedOption)obj.SelectedAdonOption).ToString()); } } if (!String.IsNullOrEmpty(toppings.ToString())) { String subString = Utility.GetSubString(toppingTemplate.ToString(), "<!-- Toppings-->", "<!-- End Topping-->", true); toppingTemplate.Replace(subString, toppings.ToString()); } //if(!String.IsNullOrEmpty(subProduct.CrustType)) // subProductTemplate.Replace("<!-- CrustType -->", subProduct.CrustType); subProductTemplate.Replace("<!-- Options -->", subProductOptionTemplate.ToString()); subProductTemplate.Replace("<!-- Topping -->", toppingTemplate.ToString()); finalSubProductTemplate.Append(subProductTemplate.ToString()); if (j != subProduct.OrderDetailSubProductAdons.Count) { finalSubProductTemplate.Append("<tr><td colspan='2' style='border-top:1px solid black;'></td></tr>"); } } newTemplate.Replace("<!--SubProducts-->", finalSubProductTemplate.ToString()); toppings = new StringBuilder(); toppingTemplate = new StringBuilder(); } foreach (BusinessEntities.OrderDetailAdOns obj in SessionOrderAdonList.ElementAt(i)) { if (obj.SelectedAdonOption != 0) { if (!obj.AdonTypeName.Equals(previousAddonTypeName)) { if (!String.IsNullOrEmpty(toppings.ToString())) { String subString = Utility.GetSubString(toppingTemplate.ToString(), "<!-- Toppings-->", "<!-- End Topping-->", true); toppingTemplate.Replace(subString, toppings.ToString()); } toppings = new StringBuilder(); toppingTemplate.Append( Core.Utility.ReadFile(PhysicalApplicationPath + HtmlFolder + "FaxToppingTemplate.html")); toppingTemplate.Replace("{TOPPINGTYPE}", obj.AdonTypeName); previousAddonTypeName = obj.AdonTypeName; } toppings.Append(Utility.GetSubString(toppingTemplate.ToString(), "<!-- Toppings-->", "<!-- End Topping-->", false)); if (obj.IsDoubleSelected) { toppings.Replace("{DOUBLE}", "Two times "); } else { toppings.Replace("{DOUBLE}", ""); } toppings.Replace("{NAME}", obj.AdonName); toppings.Replace("{OPTION}", ((BusinessEntities.SelectedOption)obj.SelectedAdonOption).ToString()); } } if (!String.IsNullOrEmpty(toppings.ToString())) { String subString = Utility.GetSubString(toppingTemplate.ToString(), "<!-- Toppings-->", "<!-- End Topping-->", true); toppingTemplate.Replace(subString, toppings.ToString()); } newTemplate.Replace("<!--OrderDetailOptions-->", optionTemplate.ToString()); newTemplate.Replace("<!--OrderDetailToppings-->", toppingTemplate.ToString()); finalTemplate.Append(newTemplate.ToString()); //finalTemplate.Append(optionTemplate.ToString()); //finalTemplate.Append(toppingTemplate.ToString()); } String DetailTemplate = Utility.GetSubString(Fax.ToString(), "<!--DETAIL TEMPLATE-->", "<!--END DETAIL TEMPLATE-->", true); DetailTemplate = DetailTemplate.Replace("<!--DETAILTEMPLATE-->", finalTemplate.ToString()); Fax.Replace(Utility.GetSubString(Fax.ToString(), "<!--DETAIL TEMPLATE-->", "<!--END DETAIL TEMPLATE-->", true), DetailTemplate.ToString()); Fax.Replace("{TIP}", order.LineTip.ToString("C2")); Fax.Replace("{TOTALPRICE}", order.OrderTotal.ToString("C2")); if (order.PaymentMethod == BusinessEntities.PaymentType.CashPayment) { interfax.InterFax client = new InterFax(); if (ConfigurationManager.AppSettings["AllowFax"].Equals("true")) { client.Sendfax(ConfigurationManager.AppSettings["FaxUsername"], ConfigurationManager.AppSettings["FaxPassword"], ConfigurationManager.AppSettings["FaxNumber"], System.Text.Encoding.UTF8.GetBytes(Fax.ToString()), "HTML"); } else { try { Core.Utility.SendEmail(ConfigurationManager.AppSettings["DonotReplyEmail"], SessionUser.Username, String.Empty, ConfigurationManager.AppSettings["OrderReceiveEmail"], "New Order Fax", Fax.ToString(), true); } catch (Exception ex) { } } } else { SessionFax = Fax.ToString(); } }
protected void AddToCartButton_Click(object sender, EventArgs e) { Products comboproduct = _productManager.GetProductById(Convert.ToInt32(Request.QueryString["PID"])); if (comboproduct != null) { try { Orders order = SessionUserOrder; if (order == null) { order = new BusinessEntities.Orders(); } if (order.OrderDetailsList == null) { order.OrderDetailsList = new List <BusinessEntities.OrderDetails>(); SessionOrderAdonList = new List <List <BusinessEntities.OrderDetailAdOns> >(); SessionOrderDetailOptionList = new List <List <BusinessEntities.OrderDetailOptions> >(); order.OrderStatusID = BusinessEntities.OrderStatus.NewOrder; } #region Order Detail BusinessEntities.OrderDetails orderdetail = new BusinessEntities.OrderDetails(); orderdetail.Price = comboproduct.DefaultBranchProductPrice; orderdetail.CategoryName = comboproduct.CategoryName; orderdetail.ProductName = comboproduct.Name; orderdetail.ProductID = comboproduct.ProductID; orderdetail.ProductImage = comboproduct.Image; orderdetail.Quantity = 1; orderdetail.IsGroupProduct = true; orderdetail.OrderDetailSubProducts = new List <OrderDetailSubProduct>(); #endregion Double price = 0; foreach (RadPageView pageView in RadMultiPage1.PageViews) { price += ((MyUserControl)pageView.Controls[0]).GetPrice(); var orderDetailObj = ((MyUserControl)pageView.Controls[0]).GetOrderDetailSubProduct(); orderdetail.OrderDetailSubProducts.Add(orderDetailObj); orderdetail.RecipientName = orderDetailObj.RecipientName; } #region Code Commit /*RepeaterItemCollection gridItems = rptProducts.Items; * foreach (RepeaterItem productItem in gridItems) * { * Double productPrice = 0, toppingPrice = 0; * bool CalculateAdonPrice = false; * HiddenField ProductID = productItem.FindControl("hdProductId") as HiddenField; * RadTextBox RecipientName = productItem.FindControl("txtRecipientName") as RadTextBox; * RadTextBox Instruction = productItem.FindControl("txtInstruction") as RadTextBox; * Products product = products.Where(p => p.ProductID == Convert.ToInt32(ProductID.Value)).First(); * #region Order Detail Sub Product * * OrderDetailSubProduct orderDetailSubProduct = new OrderDetailSubProduct(); * orderDetailSubProduct.ProductId = product.ProductID; * orderDetailSubProduct.Quantity = 1; * orderDetailSubProduct.RecipientName = RecipientName.Text; * orderDetailSubProduct.Comments = Instruction.Text; * #endregion * * * Repeater rptOptions = productItem.FindControl("rptOptions") as Repeater; * * foreach (RepeaterItem optionItem in rptOptions.Items) * { #region Order Detail Sub Product Option * #endregion * HiddenField OptionTypeID = optionItem.FindControl("hdOptionTypeId") as HiddenField; * OptionTypesInProduct optionTypeInProduct = product.OptionTypesInProductList.Where(ot => ot.OptionTypeID == Convert.ToInt16(OptionTypeID.Value)).FirstOrDefault(); * if (optionTypeInProduct.IsMultiSelect) * { * CheckBoxList chklist = optionItem.FindControl("CheckBoxList") as CheckBoxList; * if (chklist != null) * { * bool changePrice = true; * foreach (ListItem checkBox in chklist.Items) * { * if (checkBox.Selected) * { * ProductOptions productOption = optionTypeInProduct.ProductOptionsList[0]; * if (optionTypeInProduct.IsSamePrice && optionTypeInProduct.IsProductPriceChangeType) * { * if (changePrice) * { * if (productPrice == 0) * productPrice = productOption.Price; * else * productPrice += productOption.Price; * changePrice = false; * } * } * else if (optionTypeInProduct.IsProductPriceChangeType) * { * productPrice += productOption.Price; * } * OrderDetailSubProductOption orderDetailSubProductOption = new OrderDetailSubProductOption(); * orderDetailSubProductOption.ProductOptionId = productOption.OptionID; * orderDetailSubProductOption.ProductOptionName = productOption.OptionName; * orderDetailSubProductOption.Price = productOption.Price; * } * } * } * } * else * { * RadioButtonList radiolist = optionItem.FindControl("RadioButtonList") as RadioButtonList; * if (radiolist != null && !String.IsNullOrEmpty(radiolist.SelectedValue)) * { * CalculateAdonPrice = true; * if (optionTypeInProduct.IsSamePrice) * { * ProductOptions productOption = optionTypeInProduct.ProductOptionsList[0]; * productPrice = productOption.Price; * } * else * { * ProductOptions productOption = optionTypeInProduct.ProductOptionsList.Where(po => po.OptionID == Convert.ToInt32(radiolist.SelectedValue)).FirstOrDefault(); * productPrice = productOption.Price; * toppingPrice = productOption.ToppingPrice; * } * } * else * { * productPrice = product.UnitPrice; * } * } * if (CalculateAdonPrice) * { * Repeater rptAdonsType = productItem.FindControl("rptAdonsType") as Repeater; * Int16 freeToppingCount = 0; * foreach (RepeaterItem adonTypeItem in rptAdonsType.Items) * { * HiddenField hdAdonTypeId = adonTypeItem.FindControl("hdAdonTypeId") as HiddenField; * AdOnTypeInProduct adonType = product.AdOnTypeInProductList.Where(at => at.AdonTypeID == Convert.ToInt16(hdAdonTypeId.Value)).FirstOrDefault(); * * Repeater rptAdons = adonTypeItem.FindControl("rptAdons") as Repeater; * foreach (RepeaterItem adonItem in rptAdons.Items) * { * Double adonPrice = 0; * HiddenField hdAdonId = adonItem.FindControl("hdAdonId") as HiddenField; * Adon adon = adonType.Adons.Where(a => a.AdOnID == Convert.ToInt32(hdAdonId.Value)).FirstOrDefault(); * RadioButtonList txtAdonOptions = adonItem.FindControl("AdonOptions") as RadioButtonList; * CheckBox txtDouble = adonItem.FindControl("txtDouble") as CheckBox; * short selectedoption = short.Parse(txtAdonOptions.SelectedValue); * OrderDetailSubProductAdon orderDetailSubAdon = new OrderDetailSubProductAdon(); * orderDetailSubAdon.AdOnId = adon.AdOnID; * orderDetailSubAdon.AdonName = adon.AdOnName; * orderDetailSubAdon.SelectedAdonOption = selectedoption; * orderDetailSubAdon.IsDoubleSelected = txtDouble.Checked; * if (adon.DefaultSelected == 0 && (selectedoption == 1 || selectedoption == 2 || selectedoption == 3)) * { // When None was default selected and user has changed default selected option * if (!adonType.IsFreeAdonType) * { * if (txtDouble.Checked) * { * if (freeToppingCount == product.NumberOfFreeTopping) * { * if (toppingPrice > 0) * adonPrice += 2 * toppingPrice; * else * adonPrice += (2 * Convert.ToDouble(adonType.Price)); * } * else * { * if (toppingPrice > 0) * productPrice += toppingPrice; * else * productPrice += Convert.ToDouble(adonType.Price); * freeToppingCount++; * } * } * else * { * if (freeToppingCount == product.NumberOfFreeTopping) * { * if (toppingPrice > 0) * productPrice += toppingPrice; * else * productPrice += Convert.ToDouble(adonType.Price); * } * else * freeToppingCount++; * } * } * } * else // When other than None is pre selected and user has also selected Double check box * { * if (txtDouble.Checked && selectedoption != 0) * { * if (toppingPrice > 0) * adonPrice += toppingPrice; * else * adonPrice += Convert.ToDouble(adonType.Price); * } * else * { * txtDouble.Checked = false; * } * } * orderDetailSubAdon.Price = adonPrice; * productPrice += adonPrice; * } * } * } // CalculateAdonPrice * } * * netProductPrice += productPrice; * orderDetailSubProduct.Price = productPrice; * }*/ #endregion orderdetail.ItemTotal = orderdetail.Price = price; order.OrderDetailsList.Add(orderdetail); //Add order details to log table when added to cart // Prepare data for log string sessionID = HttpContext.Current.Session.SessionID; string recepientName = orderdetail.RecipientName == "" ? null : orderdetail.RecipientName; string productDetail = string.Empty; string adons = string.Empty; foreach (OrderDetailSubProduct product in orderdetail.OrderDetailSubProducts) { productDetail += product.ProductName + ": "; foreach (var p in product.OrderDetailSubProductOptions) { productDetail += p.ProductOptionName + ","; } foreach (OrderDetailSubProductAdon adon in product.OrderDetailSubProductAdons) { adons += adon.AdOnId + ","; } } //productDetail = productDetail[productDetail.Length - 1] == ',' // ? productDetail.Substring(0, productDetail.Length - 2) // : productDetail; //adons = adons[adons.Length - 1] == ',' // ? adons.Substring(0, adons.Length - 2) // : adons; productDetail = productDetail.Trim(','); adons = adons.TrimEnd(','); productDetail = productDetail == "" ? null : productDetail; adons = adons == "" ? null : adons; // get log message to pass to db string message = Common.AddToCartLogMessage(orderdetail.CategoryName, orderdetail.Price, adons, productDetail, SessionUserFullName); // Log order details LogManager log = new LogManager(); log.SaveLogData(sessionID, LogLevel.INFO.ToString(), Logger.AddToCart.ToString(), message, null); List <BusinessEntities.OrderDetailAdOns> list = new List <BusinessEntities.OrderDetailAdOns>(); SessionOrderAdonList.Add(list); List <BusinessEntities.OrderDetailOptions> list1 = new List <BusinessEntities.OrderDetailOptions>(); SessionOrderDetailOptionList.Add(list1); double preOrderPromoValue = 0.0d; //if (SessionPreOrderPromo!=null) //{ // preOrderPromoValue = SessionPreOrderPromo.PreOrderPromoValue; //} order.OrderTotal = order.OrderTotal + price; SessionUserOrder = order; SessionUserOrderTotal = order.OrderTotal; this.ClientScript.RegisterClientScriptBlock(this.GetType(), "CloseWindow", "<script type='text/javascript'>CloseOnReload()</script>"); } catch (Exception ex) { throw ex; } } }
private void OrderNowButton_Click(object sender, RoutedEventArgs e) { Double productPrice = 0; Products product = (Products)lbProducts.SelectedItem; List <OrderDetailAdOns> orderDetailAdonList = new List <OrderDetailAdOns>(); List <OrderDetailOptions> orderDetailOptionsList = new List <OrderDetailOptions>(); if (UserOrder == null) { UserOrder = new Orders(); } if (_optionPrice == 0) { productPrice = product.DefaultBranchProductPrice; } else { productPrice = _optionPrice; } if (UserOrder.OrderDetailsList == null) { UserOrder.OrderDetailsList = new List <BusinessEntities.OrderDetails>(); //SessionOrderAdonList = new List<List<BusinessEntities.OrderDetailAdOns>>(); //SessionOrderDetailOptionList = new List<List<BusinessEntities.OrderDetailOptions>>(); UserOrder.OrderStatusID = BusinessEntities.OrderStatus.NewOrder; } BusinessEntities.OrderDetails orderdetail = new BusinessEntities.OrderDetails(); if (!product.IsSpecial) { if (_optionPrice > 0) { orderdetail.Price = _optionPrice; } else { orderdetail.Price = Convert.ToDouble(product.DefaultBranchProductPrice); } } orderdetail.CategoryName = _category.Name; orderdetail.ProductName = product.Name; orderdetail.ProductID = product.ProductID; orderdetail.ProductImage = product.Image; orderdetail.Quantity = 1; if (product.IsSpecial) { MultiPorductControl control = (MultiPorductControl)MultiProductPanel.Children[0]; orderdetail.Price = control.GetPrice(); orderdetail.OrderDetailSubProducts = control.GetOrderDetailSubProducts(); orderdetail.IsGroupProduct = true; } else { #region Get Selected Option for (int i = 0; i < lbOptions.Items.Count; i++) { DependencyObject obj = lbOptions.ItemContainerGenerator.ContainerFromIndex(i); ContentPresenter optionTypeContentPresenter = FindVisualChild <ContentPresenter>(obj); OptionType optionType = (OptionType)optionTypeContentPresenter.Content; ListBox OptionList = FindVisualChild <ListBox>(obj); if (optionType.IsSamePrice && !optionType.IsMultiSelect) { for (int j = 0; j < OptionList.Items.Count; j++) { DependencyObject obj1 = OptionList.ItemContainerGenerator.ContainerFromIndex(j); // Getting the ContentPresenter of myListBoxItem ContentPresenter myContentPresenter = FindVisualChild <ContentPresenter>(obj1); // Finding textBlock from the DataTemplate that is set on that ContentPresenter DataTemplate myDataTemplate = myContentPresenter.ContentTemplate; RadioButton selectedOption = (RadioButton)myDataTemplate.FindName("SelectedOption", myContentPresenter); if (selectedOption.IsChecked.Value) { ProductOptions productOptions = (ProductOptions)myContentPresenter.Content; OrderDetailOptions orderdetailoption = new OrderDetailOptions(); orderdetailoption.ProductOptionId = productOptions.OptionID; orderdetailoption.ProductOptionName = productOptions.OptionName; orderdetailoption.Price = Convert.ToDouble(productOptions.Price); orderDetailOptionsList.Add(orderdetailoption); orderdetail.Price = productOptions.Price; } } } else if (!optionType.IsSamePrice && !optionType.IsMultiSelect) { for (int j = 0; j < OptionList.Items.Count; j++) { DependencyObject obj1 = OptionList.ItemContainerGenerator.ContainerFromIndex(j); // Getting the ContentPresenter of myListBoxItem ContentPresenter myContentPresenter = FindVisualChild <ContentPresenter>(obj1); // Finding textBlock from the DataTemplate that is set on that ContentPresenter DataTemplate myDataTemplate = myContentPresenter.ContentTemplate; RadioButton selectedOption = (RadioButton)myDataTemplate.FindName("SelectedOption", myContentPresenter); if (selectedOption.IsChecked.Value) { ProductOptions productOptions = (ProductOptions)myContentPresenter.Content; OrderDetailOptions orderdetailoption = new OrderDetailOptions(); orderdetailoption.ProductOptionId = productOptions.OptionID; orderdetailoption.ProductOptionName = productOptions.OptionName; orderdetailoption.Price = productOptions.Price; orderDetailOptionsList.Add(orderdetailoption); orderdetail.Price = productOptions.Price; } } } } #endregion #region Get Selected Toppings for (int i = 0; i < lbToppings.Items.Count; i++) { DependencyObject obj = lbToppings.ItemContainerGenerator.ContainerFromIndex(i); ContentPresenter adonTypeContentPresenter = FindVisualChild <ContentPresenter>(obj); AdonType adonType = (AdonType)adonTypeContentPresenter.Content; ListBox AdonList = FindVisualChild <ListBox>(obj); for (int j = 0; j < AdonList.Items.Count; j++) { DependencyObject obj1 = AdonList.ItemContainerGenerator.ContainerFromIndex(j); // Getting the ContentPresenter of myListBoxItem ContentPresenter myContentPresenter = FindVisualChild <ContentPresenter>(obj1); // Finding textBlock from the DataTemplate that is set on that ContentPresenter DataTemplate myDataTemplate = myContentPresenter.ContentTemplate; Int16 SelectedTopping = Convert.ToInt16(((TextBlock)myDataTemplate.FindName("SelectedTopping", myContentPresenter)).Text); if (SelectedTopping != 0) { if (!adonType.IsFreeAdonType) { Adon adon = (Adon)myContentPresenter.Content; OrderDetailAdOns orderdetailadon = new OrderDetailAdOns(); orderdetailadon.AdOnId = adon.AdOnID; orderdetailadon.AdonName = adon.AdOnName; orderdetailadon.AdonTypeName = adon.AdOnTypeName; orderdetailadon.SelectedAdonOption = (SelectedOption)SelectedTopping; orderDetailAdonList.Add(orderdetailadon); if (adon.DefaultSelected != SelectedTopping) { if (_defaultAdonPrice > 0) { productPrice += _defaultAdonPrice; } else { productPrice += (Double)adonType.Price; } } } } } } #endregion } double discountPrice = 0; Double.TryParse(txtDiscount.Text, out discountPrice); if (discountPrice > 0) { orderdetail.Price = discountPrice; } else if (orderdetail.Price == 0) { orderdetail.Price = productPrice; } UserOrder.OrderDetailsList.Add(orderdetail); UserOrder.OrderTotal += orderdetail.Price; OrderDetailOptionList.Add(orderDetailOptionsList); OrderDetailAdonList.Add(orderDetailAdonList); lbOptions.ItemsSource = null; lbToppings.ItemsSource = null; _defaultAdonPrice = 0; _optionPrice = 0; SelectedAdons.Text = string.Empty; txtDiscount.Text = String.Empty; Price.Content = String.Empty; lbProducts.UnselectAll(); this.Close(); }
private decimal GetOrderOptions(BusinessEntities.OrderDetails orderdetail, decimal adonpricefromOptionType) { RadListViewDataItemCollection optioncollection = txtOptions.Items; List <BusinessEntities.OrderDetailOptions> list = new List <BusinessEntities.OrderDetailOptions>(); foreach (RadListViewDataItem item in optioncollection) { long id = (long)item.GetDataKeyValue("ProductsOptionTypeId"); OptionTypesInProduct OTP = (from otp in entities.OptionTypesInProducts where otp.ProductsOptionTypeId == id select otp).FirstOrDefault(); if (OTP.IsSamePrice && !OTP.IsMultiSelect) { RadioButtonList radioList = item.FindControl("RadioButtonList") as RadioButtonList; foreach (ListItem listitem in radioList.Items) { if (listitem.Selected) { long POP_ID = long.Parse(listitem.Value); ////Product Option In Product ID ProductOptionsInProduct POP_obj = (from pop in entities.ProductOptionsInProducts where pop.ProductOptionsInProductID == POP_ID select pop).FirstOrDefault(); if (OTP.IsProductPriceChangeType) { orderdetail.Price = Convert.ToDouble(POP_obj.Price); } if ((bool)OTP.IsProductPriceChangeType && OTP.IsAdonPriceVary) { if (POP_obj.ToppingPrice != null) { adonpricefromOptionType = (decimal)POP_obj.ToppingPrice; } } BusinessEntities.OrderDetailOptions orderdetailoption = new BusinessEntities.OrderDetailOptions(); orderdetailoption.ProductOptionId = POP_obj.ProductOptionID; orderdetailoption.ProductOptionName = POP_obj.ProductOption.OptionName; orderdetailoption.ProductOptionTypeName = POP_obj.OptionTypesInProduct.OptionType.OptionDisplayText; if (OTP.IsProductPriceChangeType) { orderdetailoption.Price = Convert.ToDouble(POP_obj.Price.Value); } list.Add(orderdetailoption); } } } else { if (OTP.IsMultiSelect) { #region CheckBox List CheckBoxList chkList = item.FindControl("CheckBoxList") as CheckBoxList; foreach (ListItem listitem in chkList.Items) { if (listitem.Selected) { long POP_ID = long.Parse(listitem.Value); ////Product Option In Product ID ProductOptionsInProduct POP_obj = (from pop in entities.ProductOptionsInProducts where pop.ProductOptionsInProductID == POP_ID select pop).FirstOrDefault(); orderdetail.Price += Convert.ToDouble(POP_obj.Price); BusinessEntities.OrderDetailOptions orderdetailoption = new BusinessEntities.OrderDetailOptions(); orderdetailoption.ProductOptionId = POP_obj.ProductOptionID; orderdetailoption.ProductOptionName = POP_obj.ProductOption.OptionName; orderdetailoption.Price = Convert.ToDouble(POP_obj.Price.Value); orderdetailoption.ProductOptionTypeName = POP_obj.OptionTypesInProduct.OptionType.OptionDisplayText; list.Add(orderdetailoption); } } #endregion } else { RadioButtonList radioList = item.FindControl("RadioButtonList") as RadioButtonList; foreach (ListItem listitem in radioList.Items) { #region if (listitem.Selected) { long POP_ID = long.Parse(listitem.Value); ////Product Option In Product ID ProductOptionsInProduct POP_obj = (from pop in entities.ProductOptionsInProducts where pop.ProductOptionsInProductID == POP_ID select pop).FirstOrDefault(); orderdetail.Price = Convert.ToDouble(POP_obj.Price); if ((bool)OTP.IsProductPriceChangeType) { if (POP_obj.ToppingPrice != null) { adonpricefromOptionType = (decimal)POP_obj.ToppingPrice; } } BusinessEntities.OrderDetailOptions orderdetailoption = new BusinessEntities.OrderDetailOptions(); orderdetailoption.ProductOptionId = POP_obj.ProductOptionID; orderdetailoption.ProductOptionName = POP_obj.ProductOption.OptionName; orderdetailoption.ProductOptionTypeName = POP_obj.OptionTypesInProduct.OptionType.OptionDisplayText; orderdetailoption.Price = Convert.ToDouble(POP_obj.Price); list.Add(orderdetailoption); } #endregion } } } } SessionOrderDetailOptionList.Add(list); return(adonpricefromOptionType); }
private void GetOrderAdons(BusinessEntities.OrderDetails orderdetail, decimal adonpricefromOptionType) { RadListViewDataItemCollection adoncollection = txtAdonsList.Items; List <BusinessEntities.OrderDetailAdOns> list = new List <BusinessEntities.OrderDetailAdOns>(); foreach (RadListViewDataItem mainitem in adoncollection) { Label txtAdonType = mainitem.FindControl("txtAdonTypeName") as Label; RadListView txtAdons = mainitem.FindControl("txtAdons") as RadListView; long productadontypeid = (long)mainitem.GetDataKeyValue("ProductsAdOnTypeId"); AdOnTypeInProduct adontypeinproduct = (from ATP in entities.AdOnTypeInProducts where ATP.ProductsAdOnTypeId == productadontypeid select ATP).FirstOrDefault(); RadListViewDataItemCollection childadoncollection = txtAdons.Items; foreach (RadListViewDataItem childitem in childadoncollection) { long id = (long)childitem.GetDataKeyValue("ProductAdOnID"); ProductAdon productadonObj = (from PA in entities.ProductAdons where PA.ProductAdOnID == id select PA).FirstOrDefault(); if (productadonObj != null) { BusinessEntities.OrderDetailAdOns orderdetailadon = new BusinessEntities.OrderDetailAdOns(); orderdetailadon.AdOnId = productadonObj.Adon.AdOnID; orderdetailadon.AdonName = productadonObj.Adon.AdOnName; orderdetailadon.AdonTypeName = txtAdonType.Text; if (productadonObj.AdOnTypeInProduct.DisplayFormat == 1) { HiddenField SelectedSize = childitem.FindControl("SelectedSize") as HiddenField; HiddenField IsDouble = childitem.FindControl("IsDouble") as HiddenField; short selectedoption = 0, isDouble = 0; selectedoption = short.Parse(SelectedSize.Value); isDouble = short.Parse(IsDouble.Value); if (selectedoption != 0) { orderdetailadon.SelectedAdonOption = (BusinessEntities.SelectedOption)selectedoption; if (productadonObj.DefaultSelected == 0 && (selectedoption == 1 || selectedoption == 2 || selectedoption == 3)) { if (!productadonObj.Adon.AdonType1.IsFreeAdonType) { if (isDouble == 1) { if (adonpricefromOptionType > 0) { orderdetail.Price += Convert.ToDouble(2 * adonpricefromOptionType); } else { orderdetail.Price += Convert.ToDouble(2 * (decimal)adontypeinproduct.Price); } orderdetailadon.IsDoubleSelected = true; } else { if (adonpricefromOptionType > 0) { orderdetail.Price += Convert.ToDouble(adonpricefromOptionType); } else { orderdetail.Price += Convert.ToDouble((decimal)adontypeinproduct.Price); } orderdetailadon.IsDoubleSelected = false; } } else { orderdetail.Price += Convert.ToDouble(adontypeinproduct.Price); } list.Add(orderdetailadon); } else if (isDouble == 1) { if (adonpricefromOptionType > 0) { orderdetail.Price += Convert.ToDouble(adonpricefromOptionType); } else { orderdetail.Price += Convert.ToDouble((decimal)adontypeinproduct.Price); } orderdetailadon.IsDoubleSelected = true; list.Add(orderdetailadon); } else if (productadonObj.DefaultSelected == 1) { orderdetail.Price += 0; orderdetailadon.IsDoubleSelected = false; list.Add(orderdetailadon); } } } else if (productadonObj.AdOnTypeInProduct.DisplayFormat == 2) { list.Add(orderdetailadon); } else if (productadonObj.AdOnTypeInProduct.DisplayFormat == 4) { HiddenField SelectedSize = childitem.FindControl("SelectedSize") as HiddenField; short selectedoption = 0; selectedoption = short.Parse(SelectedSize.Value); orderdetailadon.SelectedAdonOption = (BusinessEntities.SelectedOption)selectedoption; if (productadonObj.DefaultSelected == 0 && selectedoption == 1) { if (!productadonObj.Adon.AdonType1.IsFreeAdonType) { orderdetail.Price += Convert.ToDouble((decimal)adontypeinproduct.Price); } } list.Add(orderdetailadon); } } } } SessionOrderAdonList.Add(list); }
protected void AddToCartButton_Click(object sender, EventArgs e) { BusinessEntities.Orders order = SessionUserOrder; if (order == null) { order = new BusinessEntities.Orders(); } try { long branchproductid = long.Parse(Request.QueryString["BPID"]); ProductsInBranch bpObj = (from bp in entities.ProductsInBranches where bp.BranchProductID == branchproductid select bp).FirstOrDefault(); if (bpObj != null) { if (order.OrderDetailsList == null) { order.OrderDetailsList = new List <BusinessEntities.OrderDetails>(); SessionOrderAdonList = new List <List <BusinessEntities.OrderDetailAdOns> >(); SessionOrderDetailOptionList = new List <List <BusinessEntities.OrderDetailOptions> >(); order.OrderStatusID = BusinessEntities.OrderStatus.NewOrder; } BusinessEntities.OrderDetails orderdetail = new BusinessEntities.OrderDetails(); if (bpObj.Product.CategoryID == PizzaCategoryId) { string thinCrust = GetThinCrustValue(); orderdetail.CrustType = thinCrust; } orderdetail.Price = Convert.ToDouble(bpObj.Price); orderdetail.CategoryName = bpObj.Product.ProductCategory.Name; orderdetail.ProductName = txtProductName.Text; orderdetail.ProductID = bpObj.ProductID; orderdetail.ProductImage = bpObj.Product.Image; orderdetail.Quantity = Convert.ToInt32(txtQuantity.Value); if (!string.IsNullOrEmpty(txtRecipientName.Text)) { orderdetail.RecipientName = txtRecipientName.Text; } if (!string.IsNullOrEmpty(txtInstruction.Text)) { orderdetail.Comments = txtInstruction.Text; } decimal adonpricefromOptionType = 0; adonpricefromOptionType = GetOrderOptions(orderdetail, adonpricefromOptionType); GetOrderAdons(orderdetail, adonpricefromOptionType); orderdetail.ItemTotal = orderdetail.Price * orderdetail.Quantity; orderdetail.OrderDetailID = order.OrderDetailsList.Count + 1; order.OrderDetailsList.Add(orderdetail); order.OrderTotal += orderdetail.ItemTotal; SessionUserOrder = order; SessionUserOrderTotal = order.OrderTotal; this.ClientScript.RegisterClientScriptBlock(this.GetType(), "CloseWindow", "<script type='text/javascript'>CloseOnReload()</script>"); } } catch (Exception ex) { throw ex; } }