Пример #1
0
    protected void ddlDeliveryTypes_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {
            int deliTypeID = 0;
            int.TryParse(ddlDeliveryTypes.SelectedValue, out deliTypeID);
            if (deliTypeID != 0)
            {
                lblDeliveryTotal.Text     = OrdersBAL.CalculateOrderDeliverycharge(deliTypeID).ToString();
                lblDtlsDeliveryTotal.Text = lblDeliveryTotal.Text;

                decimal amt = Convert.ToDecimal(String.IsNullOrEmpty(lblDtlsOrderTotal.Text) == true ? "0.00" : lblDtlsOrderTotal.Text) + Convert.ToDecimal(lblDtlsDeliveryTotal.Text);
                decimal?VAT = amt * VATRate;

                lblDtlsVAT.Text        = Math.Round(Convert.ToDecimal(VAT), 2).ToString();
                lblDtlsTotalToPay.Text = (amt + Math.Round(Convert.ToDecimal(VAT), 2)).ToString();
            }
        }
        catch (Exception objException)
        {
            CSLOrderingARCBAL.LinqToSqlDataContext db;
            db = new CSLOrderingARCBAL.LinqToSqlDataContext();
            db.USP_SaveErrorDetails(Request.Url.ToString(), "ddlDeliveryTypes_SelectedIndexChanged", Convert.ToString(objException.Message), Convert.ToString(objException.InnerException), Convert.ToString(objException.StackTrace), "", HttpContext.Current.Request.UserHostAddress, false, Convert.ToString(HttpContext.Current.Session[enumSessions.User_Id.ToString()]));
            db.Dispose();
        }
    }
Пример #2
0
    public void LoadOrders()
    {
        DateTime?       fromDate     = DateTime.Now.AddDays(-365);
        DateTime?       toDate       = DateTime.Now;
        List <OrderDTO> orderDTOList = new List <OrderDTO>();
        OrderDTO        order        = new OrderDTO();


        if (!string.IsNullOrEmpty(txtfromDate.Text.Trim()))
        {
            fromDate = Convert.ToDateTime(txtfromDate.Text.Trim());
        }

        if (!string.IsNullOrEmpty(txttoDate.Text.Trim()))
        {
            toDate = Convert.ToDateTime(txttoDate.Text.Trim());
        }
        order.orderfromdate = fromDate;
        order.ordertodate   = toDate;
        order.orderprodid   = Convert.ToInt32(ddlpro.SelectedValue);
        order.orderctgid    = Convert.ToInt32(ddlctg.SelectedValue);
        order.orderarcid    = Convert.ToInt32(ddlarc.SelectedValue);
        order.CSLOrderNo    = txtOrderNO.Text.Trim();
        order.ChipNo        = txtChipNo.Text.Trim();
        orderDTOList        = OrdersBAL.GetPreviousOrdersAdmin(order);
        gvOrders.DataSource = orderDTOList;
        gvOrders.DataBind();
    }
    void LoadPreviousOrders()
    {
        List <OrderDTO> orderDTOList = new List <OrderDTO>();

        orderDTOList        = OrdersBAL.GetPreviousOrders(Session[enumSessions.User_Id.ToString()].ToString());
        gvOrders.DataSource = orderDTOList;
        gvOrders.DataBind();
    }
Пример #4
0
    void LoadOrderDetails()
    {
        divDetails.Visible = true;
        //  lblInstAddress.Text = InstallerBAL.GetAddressHTML2LineForEmail(Convert.ToInt32(Session[enumSessions.PreviousOrderId.ToString()].ToString()));
        lblDelAddress.Text = OrdersBAL.GetDeliveryAddressHTML2Line(Convert.ToInt32(Session[enumSessions.PreviousOrderId.ToString()].ToString()));

        OrderDTO dto = new OrderDTO();

        dto = OrdersBAL.GetOrderDetail(Convert.ToInt32(Session[enumSessions.PreviousOrderId.ToString()]));

        if (dto != null)
        {
            lblSpecialInst.Text       = dto.SpecialInstructions;
            lblOrderDate.Text         = dto.OrderDate.ToString("dd-MMM-yyyy").ToUpper();
            lblCSLOrderNo.Text        = dto.CSLOrderNo;
            lblARCOrderRefNo.Text     = dto.ARCOrderRefNo;
            lblDelType.Text           = dto.DeliveryType;
            lblDeliveryTotal.Text     = dto.DeliveryCost;
            lblOrderQty.Text          = dto.OrderQty;
            lblDtlsOrderTotal.Text    = dto.OrderTotal;
            lblDtlsDeliveryTotal.Text = dto.DeliveryCost;
            lblDtlsVAT.Text           = dto.VATAmount;
            lblDtlsTotalToPay.Text    = dto.TotalAmountToPay;
            Useremail          = dto.UserEmail.ToString();
            txtNewMail.Text    = Useremail.Trim();
            hidUserEmail.Value = Useremail.Trim();
            OrderNO            = dto.CSLOrderNo;
            CreatedBy          = dto.UserId;
            hidUserID.Value    = dto.UserId.ToString();
            UserName           = dto.UserName;
            hidUserName.Value  = dto.UserName;
            InstallerId        = dto.InstallerId;
            InstallationAddId  = dto.InstallationAddressId;
        }

        lblInstAddress.Text = InstallationAddId.HasValue? InstallerBAL.GetAddressHTML2LineForEmail(InstallationAddId.Value):"Not Available"; //Priya
        if (Session[enumSessions.User_Role.ToString()] != null && Session[enumSessions.User_Role.ToString()].ToString() == enumRoles.ARC_Admin.ToString())
        {
            lblDeliveryTotal.Text     = "0.00";
            lblDtlsOrderTotal.Text    = "0.00";
            lblDtlsDeliveryTotal.Text = "0.00";
            lblDtlsVAT.Text           = "0.00";
            lblDtlsTotalToPay.Text    = "0.00";
        }
        //check role of the user
        if (Roles.IsUserInRole(UserName, enumRoles.ARC_Admin.ToString()))
        {
            rbtnwithoutprice.Checked = true;
            rbtnwithprice.Checked    = false;
        }
    }
    protected void gvOrders_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        try
        {
            gvOrders.PageIndex = e.NewPageIndex;

            if ((!string.IsNullOrEmpty(txtfromDate.Text) && !string.IsNullOrEmpty(txtfromDate.Text)))
            {
                DateTime?       fromDate     = null;
                DateTime?       toDate       = null;
                List <OrderDTO> orderDTOList = new List <OrderDTO>();

                if (!string.IsNullOrEmpty(txtfromDate.Text))
                {
                    fromDate = Convert.ToDateTime(txtfromDate.Text);
                }

                if (!string.IsNullOrEmpty(txttoDate.Text))
                {
                    toDate = Convert.ToDateTime(txttoDate.Text);
                }

                orderDTOList        = OrdersBAL.GetPreviousOrdersByDate(Convert.ToString(Session[enumSessions.User_Id.ToString()]), fromDate, toDate);
                gvOrders.DataSource = orderDTOList;
                gvOrders.DataBind();
            }

            else
            {
                LoadPreviousOrders();
            }
        }
        catch (Exception objException)
        {
            CSLOrderingARCBAL.LinqToSqlDataContext db;
            db = new CSLOrderingARCBAL.LinqToSqlDataContext();
            db.USP_SaveErrorDetails(Request.Url.ToString(), "gvOrders_PageIndexChanging", Convert.ToString(objException.Message), Convert.ToString(objException.InnerException), Convert.ToString(objException.StackTrace), "", HttpContext.Current.Request.UserHostAddress, false, Convert.ToString(HttpContext.Current.Session[enumSessions.User_Id.ToString()]));
        }
    }
    protected void btnsearch_Click(object sender, EventArgs e)
    {
        List <OrderDTO> orderfilterlist = new List <OrderDTO>();

        //List<OrderDTO> orderDTOList = gvOrders.DataSource as List<OrderDTO>;
        if (!string.IsNullOrEmpty(txtdlvnoteno.Text))
        {
            orderfilterlist = OrdersBAL.GetOrdersByDlvnoteNo(txtdlvnoteno.Text.Trim(), Convert.ToInt16(Session[enumSessions.ARC_Id.ToString()]));
        }

        else if (!string.IsNullOrEmpty(txtarcref.Text))
        {
            //  orderfilterlist = orderDTOList.FindAll(x => x.ARCOrderRefNo == txtarcref.Text);
            orderfilterlist = OrdersBAL.GetOrdersByARCRef(txtarcref.Text.Trim(), Convert.ToInt16(Session[enumSessions.ARC_Id.ToString()]));
        }

        if (orderfilterlist.Any())
        {
            gvOrders.DataSource = null;
            gvOrders.DataSource = orderfilterlist;
            gvOrders.DataBind();
        }
        else if (string.IsNullOrEmpty(txtdlvnoteno.Text) && string.IsNullOrEmpty(txtarcref.Text))
        {
            //gvOrders.DataSource = null;
            //gvOrders.DataBind();
            LoadPreviousOrders();
        }
        else
        {
            gvOrders.DataSource = null;
            gvOrders.DataBind();
        }

        //ClearAllInputs();
    }
    protected void btnShow_Click(object sender, EventArgs e)
    {
        try
        {
            if ((!string.IsNullOrEmpty(txtfromDate.Text) && !string.IsNullOrEmpty(txtfromDate.Text)))
            {
                DateTime?       fromDate     = null;
                DateTime?       toDate       = null;
                List <OrderDTO> orderDTOList = new List <OrderDTO>();

                if (!string.IsNullOrEmpty(txtfromDate.Text))
                {
                    fromDate = Convert.ToDateTime(txtfromDate.Text);
                    //  order.orderfromdate = fromDate;
                }

                if (!string.IsNullOrEmpty(txttoDate.Text))
                {
                    toDate = Convert.ToDateTime(txttoDate.Text);
                    // order.ordertodate = toDate;
                }


                orderDTOList        = OrdersBAL.GetPreviousOrdersByDate(Convert.ToString(Session[enumSessions.User_Id.ToString()]), fromDate, toDate);
                gvOrders.DataSource = orderDTOList;
                gvOrders.DataBind();
            }
            else
            {
                LoadPreviousOrders();
            }
        }
        catch (Exception)
        {
        }
    }
Пример #8
0
    protected void LoadDeliveryTypes()
    {
        ddlDeliveryTypes.Items.Clear();

        //Calculating order total and other offers to populate delivery options
        OrdersBAL deliveryOptions = new OrdersBAL();

        deliveryOptions.orderId = Convert.ToInt32(Session[enumSessions.OrderId.ToString()].ToString());

        //Set the lowest priced as selected.
        int     i = 0; int selectedIndex = 0;
        decimal leastPriceItem = decimal.MaxValue;


        try
        {
            //List<DeliveryType> shippingOptions = deliveryOptions.GetShippingOptions();
            LinqToSqlDataContext db = new LinqToSqlDataContext();
            List <USP_GetShippingOptionsResult> shippingOptions = new List <USP_GetShippingOptionsResult>();

            shippingOptions = db.USP_GetShippingOptions(Convert.ToInt32(Session[enumSessions.ARC_Id.ToString()].ToString()), new Guid(Session[enumSessions.InstallerCompanyID.ToString()].ToString()), Convert.ToInt32(Session[enumSessions.OrderId.ToString()])).ToList();

            foreach (USP_GetShippingOptionsResult delivery in shippingOptions)
            {
                System.Web.UI.WebControls.ListItem item = new System.Web.UI.WebControls.ListItem();
                System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-GB", false);
                item.Text  = delivery.DeliveryShortDesc + " - " + delivery.DeliveryPrice.Value.ToString("c");
                item.Value = delivery.DeliveryTypeId.ToString();

                if (leastPriceItem != decimal.Zero && delivery.DeliveryPrice < leastPriceItem)
                {
                    leastPriceItem = delivery.DeliveryPrice.Value;
                    ddlDeliveryTypes.ClearSelection();
                    ddlDeliveryTypes.SelectedIndex = i;
                    selectedIndex = i;
                }
                ddlDeliveryTypes.Items.Add(item);
                i++;
            }
            ddlDeliveryTypes.DataBind();
            ddlDeliveryTypes.SelectedIndex = selectedIndex;

            bool?isAncillary = false;
            db.USP_IsAncillaryOnlyOrders(Convert.ToInt32(Session[enumSessions.OrderId.ToString()]), ref isAncillary);
            if (isAncillary.Value == true)
            {
                lblIsAncillary.Visible = true;
            }
            else
            {
                lblIsAncillary.Visible = false;
            }
        }
        catch (Exception objException)
        {
            CSLOrderingARCBAL.LinqToSqlDataContext db;
            db = new CSLOrderingARCBAL.LinqToSqlDataContext();
            db.USP_SaveErrorDetails(Request.Url.ToString(), "LoadDeliveryTypes", Convert.ToString(objException.Message), Convert.ToString(objException.InnerException), Convert.ToString(objException.StackTrace), "", HttpContext.Current.Request.UserHostAddress, false, Convert.ToString(HttpContext.Current.Session[enumSessions.User_Id.ToString()]));
            db.Dispose();
        }
    }
    void LoadOrderDetails(int orderID)
    {
        int?installationAddressID = 0;

        divDetails.Visible = true;
        //  lblInstAddress.Text = InstallerBAL.GetAddressHTML2LineForEmail(Convert.ToInt32(Session[enumSessions.PreviousOrderId.ToString()].ToString()));
        lblDelAddress.Text = OrdersBAL.GetDeliveryAddressHTML2Line(orderID);

        OrderDTO dto = new OrderDTO();

        dto = OrdersBAL.GetOrderDetail(orderID);

        if (dto != null)
        {
            lblSpecialInst.Text       = dto.SpecialInstructions;
            lblOrderDate.Text         = dto.OrderDate.ToString("dd-MMM-yyyy").ToUpper();
            lblCSLOrderNo.Text        = dto.CSLOrderNo;
            lblARCOrderRefNo.Text     = dto.ARCOrderRefNo;
            lblDelType.Text           = dto.DeliveryType;
            lblDeliveryTotal.Text     = dto.DeliveryCost;
            lblOrderQty.Text          = dto.OrderQty;
            lblDtlsOrderTotal.Text    = dto.OrderTotal;
            lblDtlsDeliveryTotal.Text = dto.DeliveryCost;
            lblDtlsVAT.Text           = dto.VATAmount;
            lblDtlsTotalToPay.Text    = dto.TotalAmountToPay;
            lblUserName.Text          = dto.UserName;
            installationAddressID     = dto.InstallationAddressId;
        }
        lblInstAddress.Text = installationAddressID.HasValue?InstallerBAL.GetAddressHTML2LineForEmail(installationAddressID.Value):"Not Available";
        List <string> tracknos = OrdersBAL.GetTrackingNoList(orderID);

        //STArt:ORD:31 getting the fex url from appsetting
        ApplicationDTO appdto;
        AppSettings    appsett = new AppSettings();

        appdto = appsett.GetAppValues();
        foreach (string str in tracknos)
        {
            string fedexURL = appdto.FedexURL.Replace("@@trkno@@", str.Replace(" ", ""));
            strURLTracking += "<a href=" + fedexURL + " target=_blank >" + str.Replace(" ", "") + "</a>" + " &nbsp;&nbsp;  ";
            //strURLTracking += "<a href=https://www.fedex.com/fedextrack/?tracknumbers=" + str + "&locale=en_GB&cntry_code=gb target=_blank >" + str + "</a>" + "  &nbsp;&nbsp;&nbsp;  ";
        }
        //END-ORD:31
        if (strURLTracking != null || !(string.IsNullOrEmpty(strURLTracking)))
        {
            strURLTracking.Substring(0, strURLTracking.Length - 2);
        }
        else
        {
            strURLTracking = "No Tracks";
        }

        // deliverynotes
        List <string> Deliverynotes = OrdersBAL.GetDeliveryNoteList(orderID);

        foreach (string note in Deliverynotes)
        {
            strURLDeliveyNotes = strURLDeliveyNotes + "<a >" + note + "</a>" + "  &nbsp;&nbsp;&nbsp;  ";
        }
        if (strURLDeliveyNotes != null || !(string.IsNullOrEmpty(strURLDeliveyNotes)))
        {
            strURLDeliveyNotes.Substring(0, strURLDeliveyNotes.Length - 2);
        }
        else
        {
            strURLDeliveyNotes = "NA";
        }

        if (Session[enumSessions.User_Role.ToString()] != null && Session[enumSessions.User_Role.ToString()].ToString() == enumRoles.ARC_Admin.ToString())
        {
            lblDeliveryTotal.Text     = "0.00";
            lblDtlsOrderTotal.Text    = "0.00";
            lblDtlsDeliveryTotal.Text = "0.00";
            lblDtlsVAT.Text           = "0.00";
            lblDtlsTotalToPay.Text    = "0.00";
        }
    }
Пример #10
0
    public static void SendEmailWithPrice(string OrderNo, string mailTO, SendEmailDTO sendEmailDTO,
                                          string mailFrom, string mailCC, bool isEmailFromViewOrders, bool?hasEmizonProducts, int orderID)
    {
        try
        {
            String           ProductsList    = "";
            bool             instadd_differs = false;
            string           subjectsuffix   = string.Empty;
            string           templatePath    = "Template";
            SendEmailMessage sendEmail       = new SendEmailMessage();
            EmailMessage     cslEmailMessage = new EmailMessage();
            string           emizonQueuePath = ConfigurationManager.AppSettings["EmizonQueue"].ToString();//could have used AppSettings but no point as another one is using config

            string mailSubject = "Order Confirmation - Order Ref: " + OrderNo;
            if (isEmailFromViewOrders)
            {
                if (mailTO.EndsWith("@csldual.com"))
                {
                    subjectsuffix = "; Email Resent";
                }

                mailSubject  = mailSubject + subjectsuffix;
                templatePath = "../Template";
            }

            String        mailHtml   = ReadTemplates.ReadMailTemplate(System.Web.HttpContext.Current.Server.MapPath(templatePath), "EmailTemplate.html");
            StringBuilder objBuilder = new StringBuilder();
            objBuilder.Append(mailHtml);
            objBuilder.Replace("{OrderNo}", OrderNo);
            objBuilder.Replace("{OrderDate}", string.IsNullOrEmpty(sendEmailDTO.orderDate) ? "." : sendEmailDTO.orderDate);
            objBuilder.Replace("{OrderRef}", string.IsNullOrEmpty(sendEmailDTO.ARCOrderRefNo) ? "." : sendEmailDTO.ARCOrderRefNo);

            ARC    arc    = ArcBAL.GetArcInfoByUserId(new Guid(sendEmailDTO.userID));
            string arcAdd = "";

            if (arc != null)
            {
                arcAdd  = arc.CompanyName == null ? "" : arc.CompanyName + ",&nbsp;";
                arcAdd += arc.AddressOne + ", <br /> ";
                arcAdd += string.IsNullOrEmpty(arc.AddressTwo) ? "" : arc.AddressTwo + ",&nbsp;";
                arcAdd += string.IsNullOrEmpty(arc.Town) ? "" : arc.Town + ",<br /> ";
                arcAdd += string.IsNullOrEmpty(arc.County) ? "" : arc.County + ", ";
                arcAdd += string.IsNullOrEmpty(arc.PostCode) ? "" : arc.PostCode + " <br />";
                objBuilder.Replace("{Fax}", string.IsNullOrEmpty(arc.Fax) ? "." : arc.Fax);
                objBuilder.Replace("{Tel}", string.IsNullOrEmpty(arc.Telephone) ? "." : arc.Telephone);
                objBuilder.Replace("{ARC}", arcAdd);
            }

            objBuilder.Replace("{Username}", sendEmailDTO.userName);
            objBuilder.Replace("{UserEmail}", sendEmailDTO.userEmail);

            // OrderDetails
            LinqToSqlDataContext db = new LinqToSqlDataContext();
            var products            = db.USP_GetBasketProducts(Convert.ToInt32(sendEmailDTO.orderID)).ToList();

            if (products != null && products.Count > 0)
            {
                string chipNos     = "";
                int    countOption = 1;

                foreach (var prod in products)
                {
                    int rowCount = db.USP_GetBasketProductsOnCheckOut(Convert.ToInt32(sendEmailDTO.orderID)).Where(i => i.ProductCode == prod.ProductCode.Trim()).Count();
                    ProductsList += "<tr><td style=\"background: #FFF7F7\">" + prod.ProductCode + "</td><td>" + prod.ProductName + "</td> <td style=\"background: #FFF7F7\">" + prod.ProductQty + "</td><td>£" + prod.Price;

                    if (prod.ProductType == "Product")
                    {
                        chipNos = "";
                        var ChipNumbers = db.USP_GetBasketGPRSChipNumbersByProductId(Convert.ToInt32(sendEmailDTO.orderID), prod.ProductId, prod.CategoryId).ToList();

                        if (ChipNumbers != null)
                        {
                            foreach (var chipno in ChipNumbers)
                            {
                                chipNos += string.IsNullOrEmpty(chipno.GPRSNo) ? "" : chipno.GPRSNo + "-";
                                chipNos += string.IsNullOrEmpty(chipno.PSTNNo) ? "" : chipno.PSTNNo + "-";
                                chipNos += string.IsNullOrEmpty(chipno.GSMNo) ? "" : chipno.GSMNo + "-";  //added GSM NO(PanelID) in email
                                chipNos += string.IsNullOrEmpty(chipno.OptionName) ? "" : chipno.OptionName;
                                chipNos += ",";

                                if (chipno.PSTNNo == "" &&
                                    chipno.OptionName == "" &&
                                    chipno.GSMNo == "" &&
                                    chipNos.Length > 0
                                    )//added GSM NO(PanelID) in email
                                {
                                    chipNos = chipNos.Remove(chipNos.Length - 1, 1);
                                }
                            }


                            if (chipNos != "")
                            {
                                chipNos       = chipNos.Substring(0, chipNos.Length - 1);
                                ProductsList += "</td> <td style=\"background: #FFF7F7\">" + chipNos + "</td> </td></tr>";
                            }
                            else
                            {
                                ProductsList += "</td> <td style=\"background: #FFF7F7\">Chip Numbers : Not Provided</td></tr>";
                            }
                        }

                        if (rowCount == 1)
                        {
                            var dependentproducts = db.USP_GetBasketDependentProductsByProductId(Convert.ToInt32(sendEmailDTO.orderID), prod.ProductId, prod.CategoryId).ToList();
                            if (dependentproducts != null && dependentproducts.Count > 0)
                            {
                                foreach (var dp in dependentproducts)
                                {
                                    ProductsList += "<tr><td>" + dp.ProductCode + "</td><td>" + dp.ProductName + "</td><td>" + dp.ProductQty + "</td><td>£" + dp.Price + "</tr>";
                                }
                            }
                            countOption = 0;
                        }
                        else if (rowCount == countOption)
                        {
                            var dependentproducts = db.USP_GetBasketDependentProductsByProductId(Convert.ToInt32(sendEmailDTO.orderID), prod.ProductId, prod.CategoryId).ToList();
                            if (dependentproducts != null && dependentproducts.Count > 0)
                            {
                                foreach (var dp in dependentproducts)
                                {
                                    ProductsList += "<tr><td>" + dp.ProductCode + "</td><td>" + dp.ProductName + "</td><td>" + dp.ProductQty + "</td><td>£" + dp.Price + "</tr>";
                                }
                            }
                        }
                    }
                    countOption++;
                }
            }

            OrderDTO objorder = CSLOrderingARCBAL.BAL.OrdersBAL.GetOrderDetail(Convert.ToInt32(sendEmailDTO.orderID));
            //objBuilder.Replace("{OrderTotal}", Convert.ToDecimal(lblDtlsOrderTotal.Text).ToString("c"));
            objBuilder.Replace("{OrderTotal}", "£" + Convert.ToDecimal(objorder.OrderTotal));
            //objBuilder.Replace("{DeliveryTotal}", Convert.ToDecimal(lblDtlsDeliveryTotal.Text).ToString("c"));
            objBuilder.Replace("{DeliveryTotal}", "£" + Convert.ToDecimal(objorder.DeliveryCost));
            //objBuilder.Replace("{VAT}", Convert.ToDecimal(lblDtlsVAT.Text).ToString("c"));
            objBuilder.Replace("{VAT}", "£" + Convert.ToDecimal(objorder.VATAmount));
            //objBuilder.Replace("{TotalToPay}", Convert.ToDecimal(lblDtlsTotalToPay.Text).ToString("c"));
            objBuilder.Replace("{TotalToPay}", "£" + Convert.ToDecimal(objorder.TotalAmountToPay));
            objBuilder.Replace("{DeliveryTypeName}", string.IsNullOrEmpty(sendEmailDTO.DdeliveryType) ? "" : sendEmailDTO.DdeliveryType);
            objBuilder.Replace("{DeliveryTypePrice}", "£" + sendEmailDTO.deliveryCost);
            objBuilder.Replace("{Installer}", InstallerBAL.GetAddressHTML2LineForEmail(new Guid(sendEmailDTO.installerID)));

            if (objorder.InstallationAddressId > 0)
            {
                instadd_differs = true;
            }
            else
            {
                instadd_differs = false;
            }
            if (instadd_differs)// || sendEmailDTO.InstallationAddId != 0)
            {
                //string InsAdd = InstallerBAL.GetAddressHTML2LineForEmail(Convert.ToInt32(Session[enumSessions.PreviousOrderId.ToString()].ToString()));
                string InsAdd = objorder.InstallationAddressId.HasValue ? InstallerBAL.GetAddressHTML2LineForEmail(objorder.InstallationAddressId.Value) : "Not Available";
                objBuilder.Replace("{InstallerAddress}", "<td><div style=\"width: 100%; margin: 0; padding: 0;\"><table border=\"0\" cellpadding=\"5\" cellspacing=\"0\" width=\"100%\"><tr><td style=\"text-align: left\"> <font color=\"#888\" size=\"2\" face=\"Arial\">" + InsAdd + " </font></td></tr></table></div></td>");
                objBuilder.Replace("{HeadingInstallerAdd}", "<td><h3 style=\"font-size:11px; text-align: center; margin: 0; padding: 5px auto;\">Installation Address</h3></td>");
            }
            else
            {
                objBuilder.Replace("{InstallerAddress}", "");
                objBuilder.Replace("{HeadingInstallerAdd}", "");
            }
            objBuilder.Replace("{DeliveredTo}", OrdersBAL.GetDeliveryAddressHTML2Line(Convert.ToInt32(sendEmailDTO.orderID)));
            objBuilder.Replace("{SpecialInstructions}", sendEmailDTO.specialInstructions);
            if (isEmailFromViewOrders)
            {
                objBuilder.Append("Email Resent");
            }
            var distinctProduct = products.Select(i => i.ProductCode).Distinct();

            foreach (var pro in distinctProduct)
            {
                products = db.USP_GetBasketProducts(Convert.ToInt32(sendEmailDTO.orderID)).Where(p => p.ProductCode == pro).Take(1).ToList();

                foreach (var prod in products)
                {
                    if (prod.IsCSDUser == true)
                    {
                        ProductsList += "<tr><td>" + prod.ProductCode + "</td><td>" + prod.Message + "</td></tr>";
                    }
                }
            }
            objBuilder.Replace("{ProductList}", ProductsList);
            if (mailTO != "" && mailTO.Trim() != "")
            {
                string[] mailFromList = mailFrom.Split(',');
                string[] mailCCList   = mailCC.Split(',');
                string   emailCC      = string.Empty;

                foreach (string email in mailCCList)
                {
                    emailCC += email + ",";
                }
                if (!string.IsNullOrEmpty(emailCC))
                {
                    emailCC = emailCC.TrimEnd(',');
                }


                //PUSH TO EMIZON QUEUE
                if (hasEmizonProducts.HasValue && hasEmizonProducts.Value)
                {
                    EmizonOrderController.AddAPIRequestToQueue(emizonQueuePath, new Emizon.APIModels.MSMQTypes.QueueOrderMessage()
                    {
                        From          = mailFrom,
                        To            = mailTO,
                        CC            = mailCC,
                        BCC           = mailCC,
                        Subject       = mailSubject,
                        OrderHTMLBody = objBuilder.ToString(),
                        orderID       = orderID
                    });
                }
                else
                {
                    //Add below code to send the email message via msmq not smtp -Priya 15/06/2017
                    //Remove Emizon placeholder
                    objBuilder.Replace("{EmizonData}", "");

                    cslEmailMessage.From    = mailFrom;
                    cslEmailMessage.To      = mailTO;
                    cslEmailMessage.CC      = emailCC;
                    cslEmailMessage.BCC     = emailCC;
                    cslEmailMessage.Subject = mailSubject;
                    cslEmailMessage.Message = objBuilder.ToString();

                    sendEmail.SendEmailMessageToQueue(ConfigurationManager.AppSettings["QueueName"].ToString(), cslEmailMessage);
                }
                //End Code sending email  to msmq.
            }
            ApplicationDTO appSettings     = new AppSettings().GetAppValues();
            List <string>  lstProductCodes = new List <string>();
            lstProductCodes = appSettings.ConnectionOnlyCodes.Split(',').ToList();

            bool connectionProductCodeExist = false;
            foreach (var x in distinctProduct)
            {
                if (lstProductCodes.Exists(e => e.EndsWith(x)))
                {
                    connectionProductCodeExist = true;
                }
            }
            StringBuilder strURL = new StringBuilder();

            if (connectionProductCodeExist)
            {
                #region buildURLs

                List <DCCCompany> lstDCCCompany = db.DCCCompanies.ToList();

                foreach (DCCCompany company in lstDCCCompany)
                {
                    var tableCodes = company.Productcode.Split(',').ToList();

                    foreach (string s in tableCodes)
                    {
                        if (distinctProduct.Contains(s)) //only create a link if the product exist in the basket items.
                        {
                            strURL.Append(" please <a href='" + company.InstructionsUrl + "'>Click here for " + company.company_name + "</a> or ");
                            break; // once we add
                        }
                    }
                }


                #endregion


                string mailSubjectConnectionOnly = "ARC Connection Only - Order Confirmation - Order Ref: " + OrderNo;
                if (isEmailFromViewOrders)
                {
                    if (mailTO.EndsWith("@csldual.com"))
                    {
                        subjectsuffix = "; Email Resent";
                    }

                    mailSubjectConnectionOnly = mailSubjectConnectionOnly + subjectsuffix;
                }

                String mailHtmlConnectionOnly = ReadTemplates.ReadMailTemplate(System.Web.HttpContext.Current.Server.MapPath(templatePath), "EmailTemplate_ConnectionOrders.html");
                //  String mailHtmlConnectionOnly = ReadTemplates.ReadMailTemplate(System.Web.HttpContext.Current.Server.MapPath(templatePath), "EmailTemplate_v2_ConnectionOrders.html");
                StringBuilder objBuilderConnectionOnly = new StringBuilder();
                objBuilderConnectionOnly.Append(mailHtmlConnectionOnly);

                objBuilderConnectionOnly.Replace("{InstallationURL}", strURL.ToString().TrimEnd(' ', 'o', 'r') + '.');
                objBuilderConnectionOnly.Replace("{OrderNo}", OrderNo);
                objBuilderConnectionOnly.Replace("{OrderDate}", sendEmailDTO.orderDate);
                objBuilderConnectionOnly.Replace("{OrderRef}", string.IsNullOrEmpty(sendEmailDTO.ARCOrderRefNo) ? "." : sendEmailDTO.ARCOrderRefNo);
                objBuilderConnectionOnly.Replace("{OrderTotal}", "£" + objorder.OrderTotal);
                objBuilderConnectionOnly.Replace("{DeliveryTotal}", "£" + objorder.DeliveryCost);
                objBuilderConnectionOnly.Replace("{VAT}", "£" + objorder.VATAmount);
                objBuilderConnectionOnly.Replace("{TotalToPay}", "£" + objorder.TotalAmountToPay);
                objBuilderConnectionOnly.Replace("{DeliveryTypeName}", sendEmailDTO.DdeliveryType.ToString().TrimEnd(' '));
                // objBuilderConnectionOnly.Replace("{DeliveryTypePrice}", "£" + sendEmailDTO.deliveryCost);
                objBuilderConnectionOnly.Replace("{Installer}", InstallerBAL.GetAddressHTML2LineForEmail(new Guid(sendEmailDTO.installerID)));


                if (arc != null)
                {
                    objBuilderConnectionOnly.Replace("{Fax}", string.IsNullOrEmpty(arc.Fax) ? "." : arc.Fax);
                    objBuilderConnectionOnly.Replace("{Tel}", string.IsNullOrEmpty(arc.Telephone) ? "." : arc.Telephone);
                    objBuilderConnectionOnly.Replace("{ARC}", arcAdd);
                }

                objBuilderConnectionOnly.Replace("{Username}", sendEmailDTO.userName);
                objBuilderConnectionOnly.Replace("{UserEmail}", sendEmailDTO.userEmail);

                //comment below line if new RAc connection only template is approved
                if (instadd_differs)
                {
                    string InsAddConnection = objorder.InstallationAddressId.HasValue ? InstallerBAL.GetAddressHTML2LineForEmail(objorder.InstallationAddressId.Value) : "Not Available";
                    //string InsAddConnection= InstallerBAL.GetInstallationAddressHTML2LineForEmail(Convert.ToInt32(Session[enumSessions.OrderId.ToString()].ToString()));
                    objBuilderConnectionOnly.Replace("{InstallerAddress}", "<td><div style=\"width: 100%; margin: 0; padding: 0;\"><table border=\"0\" cellpadding=\"5\" cellspacing=\"0\" width=\"100%\"><tr><td style=\"text-align: left\"> <font color=\"#888\" size=\"2\" face=\"Arial\">" + InsAddConnection + " </font></td></tr></table></div></td>");
                    objBuilderConnectionOnly.Replace("{HeadingInstallerAdd}", "<td><h3 style=\"font-size:11px; text-align: center; margin: 0; padding: 5px auto;\">Installation Address</h3></td>");
                }
                else
                {
                    //objBuilderConnectionOnly.Replace("{InstallerAddress}", "");
                    // objBuilderConnectionOnly.Replace("{HeadingInstallerAdd}", "");
                    objBuilderConnectionOnly.Replace("{InstallerAddress}", "");
                    objBuilderConnectionOnly.Replace("{HeadingInstallerAdd}", "");
                }

                //

                objBuilderConnectionOnly.Replace("{DeliveredTo}", OrdersBAL.GetDeliveryAddressHTML2Line(Convert.ToInt32(sendEmailDTO.orderID)));
                objBuilderConnectionOnly.Replace("{SpecialInstructions}", string.IsNullOrEmpty(sendEmailDTO.specialInstructions.Trim()) ? "." : sendEmailDTO.specialInstructions.Trim());

                ProductsList = Regex.Replace(ProductsList, @"(?i)<(table|tr|td)(?:\s+(?:""[^""]*""|'[^']*'|[^""'>])*)?>", "<$1>");
                objBuilderConnectionOnly.Replace("{ProductList}", ProductsList);

                LinqToSqlDataContext dbe = new LinqToSqlDataContext();
                var connInstallerEmail   = (from o in dbe.Orders
                                            join i in dbe.Installers on o.InstallerUnqCode equals i.UniqueCode.ToString()
                                            join ia in dbe.InstallerAddresses on i.AddressID equals ia.AddressID
                                            where o.OrderNo == OrderNo
                                            select ia.Email).Single();

                if (string.IsNullOrEmpty(connInstallerEmail))
                {
                    connInstallerEmail = ConfigurationManager.AppSettings["TeleSalesEmail"].ToString();
                }
                cslEmailMessage.From    = mailFrom;
                cslEmailMessage.To      = connInstallerEmail;
                cslEmailMessage.CC      = mailCC;
                cslEmailMessage.BCC     = mailCC;
                cslEmailMessage.Subject = mailSubjectConnectionOnly;
                cslEmailMessage.Message = Convert.ToString(objBuilderConnectionOnly.ToString());

                sendEmail.SendEmailMessageToQueue(ConfigurationManager.AppSettings["QueueName"].ToString(), cslEmailMessage);
            }

            db.Dispose();
            HttpContext.Current.ApplicationInstance.CompleteRequest();
        }
        catch (Exception objException)
        {
            CSLOrderingARCBAL.LinqToSqlDataContext db;
            db = new CSLOrderingARCBAL.LinqToSqlDataContext();
            db.USP_SaveErrorDetails(System.Web.HttpContext.Current.Request.Url.ToString(), "SendEmailWithPrice",
                                    Convert.ToString(objException.Message), Convert.ToString(objException.InnerException),
                                    Convert.ToString(objException.StackTrace), "", HttpContext.Current.Request.UserHostAddress, false,
                                    Convert.ToString(HttpContext.Current.Session[enumSessions.User_Id.ToString()]));
        }
    }