protected CartItem AddToCart(ProductDetails product, double quantity, double?price = null)
        {
            var cartItems = HttpContext.GetCartItems();
            var res       = cartItems.ToLookup(ci => ci.ProductDetails, ci => ci, ProductDetails.PhysicalComparer)[product].ToList();

            if (res.Count > 0)
            {
                var item = res[0];
                item.Quantity += quantity;
                DbSession.SaveOrUpdate(item);
                return(item);
            }
            else
            {
                var item = new CartItem();
                item.AppId          = WebGlobal.AppId;
                item.SessionID      = WebGlobal.GetSessionCookie(System.Web.HttpContext.Current);
                item.Name           = product.Name;
                item.Price          = price ?? product.SellingPrice ?? 0D;
                item.ProductDetails = product;
                item.Quantity       = quantity;
                DbSession.SaveOrUpdate(item);
                HttpContext.ResetCartCount();
                return(item);
            }
        }
        public ActionResult RSVP(RSVPModel model)
        {
            var notes = new StringBuilder(1000);

            notes.AppendLine(model.Notes);


            var customer = SaveCustomerDto(model, "Customer RSVP to Balcony open house event", 500, notes.ToString());

            try
            {
                var strBody = new StringBuilder(1000);
                strBody.AppendLine("<html><body>");
                strBody.AppendLine("<h2><u>Customer RSVPed to Balcony open house event</u></h2>");
                strBody.AppendLine("<table border=0>");
                strBody.AppendLine("<tr><td align=right nowrap><b>Name:</b></td><td>" + customer.DefaultContact.FullName + "</td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>E-mail:</b></td><td>" + model.Email1 + "</td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>Company:</b></td><td>" + customer.CompanyName + "</td></tr>");
                strBody.AppendLine("<tr><td> </td><td></td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>Address1:</b></td><td>" + model.House + "</td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>Address2:</b></td><td>" + model.Street + "</td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>Town\\City:</b></td><td>" + model.Town + "</td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>Country:</b></td><td>" + customer.PrimaryAddress.Country.Name_En + "</td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>Region:</b></td><td>" + customer.PrimaryAddress.Region.Name_En + "</td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>County:</b></td><td>" + customer.PrimaryAddress.SubRegion.Name_En + "</td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>Postcode:</b></td><td>" + model.PostCode + "</td></tr>");
                strBody.AppendLine("<tr><td> </td><td></td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>Phone:</b></td><td>" + model.Phone + "</td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>Mobile:</b></td><td>" + model.Mobile + "</td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>Fax:</b></td><td>" + model.Fax + "</td></tr>");
                strBody.AppendLine("<tr><td> </td><td></td></tr>");
                strBody.AppendLine("<tr><td align=right><b>Notes:</b></td><td>" + model.Notes + "</td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>BV Subscription:</b></td><td>" + (model.Subscription ? "Yes" : "No") + "</td></tr>");
                strBody.AppendLine("</table></body></html>");
                var mlClient = new MailManager();
                mlClient.SendMail(WebGlobal.SystemMail, WebGlobal.BrochuresMail, "Customer RSVPed to Balcony open house event", strBody.ToString());
                var body = TemplateService.GetText(DbSession.Get <Template>(new Guid("f02e41b9-c9e9-e011-9d71-58b0358c18e0")).Body, customer);
            }
            catch (Exception ex)
            {
                WebGlobal.HandleException(ex, System.Web.HttpContext.Current);
            }


            return(Redirect("/general/rsvp-success"));
        }
        public ActionResult ArrangeVisit(ArrangeVisitModel model)
        {
            var notes = new StringBuilder(1000);

            notes.AppendLine(model.Notes);


            var customer = SaveCustomerDto(model, "Ambassador visit request", 21, notes.ToString());

            try
            {
                var strBody = new StringBuilder(1000);
                strBody.AppendLine("<html><body>");
                strBody.AppendLine("<h2><u>Customer requested Ambassador visit</u></h2>");
                strBody.AppendLine("<table border=0>");
                strBody.AppendLine("<tr><td align=right nowrap><b>Name:</b></td><td>" + customer.DefaultContact.FullName + "</td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>E-mail:</b></td><td>" + model.Email1 + "</td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>Company:</b></td><td>" + customer.CompanyName + "</td></tr>");
                strBody.AppendLine("<tr><td> </td><td></td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>Address1:</b></td><td>" + model.House + "</td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>Address2:</b></td><td>" + model.Street + "</td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>Town\\City:</b></td><td>" + model.Town + "</td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>Country:</b></td><td>" + customer.PrimaryAddress.Country.Name_En + "</td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>Region:</b></td><td>" + customer.PrimaryAddress.Region.Name_En + "</td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>County:</b></td><td>" + customer.PrimaryAddress.SubRegion.Name_En + "</td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>Postcode:</b></td><td>" + model.PostCode + "</td></tr>");
                strBody.AppendLine("<tr><td> </td><td></td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>Phone:</b></td><td>" + model.Phone + "</td></tr>");
                strBody.AppendLine("<tr><td align=right nowrap><b>Mobile:</b></td><td>" + model.Mobile + "</td></tr>");

                strBody.AppendLine("<tr><td> </td><td></td></tr>");
                strBody.AppendLine("<tr><td align=right><b>Notes:</b></td><td>" + model.Notes + "</td></tr>");

                strBody.AppendLine("</table></body></html>");
                var mlClient = new MailManager();
                mlClient.SendMail(WebGlobal.SystemMail, "*****@*****.**", "Ambassador visit request", strBody.ToString());
            }
            catch (Exception ex)
            {
                WebGlobal.HandleException(ex, System.Web.HttpContext.Current);
            }


            return(Redirect("/general/ambassador-visit-request-success"));
        }
        public static IList <CartItem> GetCartItems(this HttpContext context)
        {
            var cusid = context.GetCustomerId() ?? Guid.Empty;
            var si    = WebGlobal.GetSessionCookie(context);

            return(context.GetDbSession()
                   .CreateQuery(@"select distinct ci 
                               from CartItem as ci 
                               left join fetch ci.ProductDetails 
                               where ci.AppId = :appid and (ci.Customer.ID = :cusid or ci.SessionID = :si) 
                               order by ci.DateCreated")
                   .SetParameter("appid", WebGlobal.AppId)
                   .SetParameter("si", si)
                   .SetParameter("cusid", cusid)
                   .SetCacheable(true)
                   .SetCacheMode(CacheMode.Normal)
                   .List <CartItem>());
        }
        public ActionResult ContactUs(ContactUsModel model)
        {
            var emailAttr = new EmailAttribute();

            if (String.IsNullOrEmpty(model.FirstName) || String.IsNullOrEmpty(model.LastName) || String.IsNullOrEmpty(model.Email1) || !emailAttr.IsValid(model.Email1))
            {
                throw new Exception("Invalid model");
            }

            var customer = SaveCustomerDto(model, "Online Contact Request", 41, model.Notes ?? "", validateModel: false);

            try
            {
                var strBody = new StringBuilder(1000);
                strBody.AppendLine("<html><head><style>body{font-size: 12pt;font-family: Times New Roman;margin: 0px;}</style></head><body>");
                strBody.AppendLine(customer.DefaultContact.FullName + "<br />");
                if (!String.IsNullOrEmpty(customer.CompanyName))
                {
                    strBody.AppendLine(customer.CompanyName + "<br />");
                }
                strBody.AppendLine("<br /><br /><br />");
                strBody.AppendLine(customer.DefaultContact.Email);
                strBody.AppendLine("<br /><br />");
                var catalog = customer.CustomerCatalogs.FirstOrDefault();
                strBody.AppendLine(catalog != null ? catalog.Name : "");
                strBody.AppendLine("<br /><br />");
                if (!String.IsNullOrEmpty(customer.RawCustomerContacts[0].PrimaryPhone))
                {
                    strBody.AppendLine("T: " + customer.RawCustomerContacts[0].PrimaryPhone + "<br />");
                }
                strBody.AppendLine("<br /><br />");
                strBody.AppendLine(model.Notes);
                strBody.AppendLine("</body></html>");

                var mlClient = new MailManager();
                mlClient.SendMail(WebGlobal.SystemMail, WebGlobal.SalesMail, "New Contact Request", strBody.ToString());
            }
            catch (Exception ex)
            {
                WebGlobal.HandleException(ex, System.Web.HttpContext.Current);
            }

            return(Redirect("/general/contact-us-success"));
        }
예제 #6
0
        void Application_Error(object sender, EventArgs e)
        {
            try
            {
                var error = Server.GetLastError();

                var httpException = error as HttpException;
                if (httpException != null && httpException.GetHttpCode() == 404)
                {
                    LogManager.GetLogger("NotFoundErrors").WarnFormat("Not Found 404 - {0} - {1}", Request.Url, Request.UserAgent);
                }
                else
                {
                    WebGlobal.HandleException(error, Context);
                }
            }
            catch (Exception ex)
            {
                Global.Logger.Error("Error executing Application_Error", ex);
            }
        }