예제 #1
0
        public ConfirmedOrderDetailDTO GetConfirmedOrderDetail(Guid orderId)
        {
            var ConfirmedOrderDetailDTO = new ConfirmedOrderDetailDTO();

            var order = eCanteenEntities.Order.Where(o => o.Id.Equals(orderId)).FirstOrDefault();

            ConfirmedOrderDetailDTO.Order        = order;
            ConfirmedOrderDetailDTO.OrderedItems = new List <FoodItem>();

            order.OrderItem = eCanteenEntities.OrderItem.Where(oi => oi.OrderId.Equals(orderId)).ToList();

            ConfirmedOrderDetailDTO.Customer = eCanteenEntities.Customer.Where(c => c.Id.Equals(order.CustomerId)).FirstOrDefault();

            order.OrderItem.ToList().ForEach(delegate(OrderItem orderItem)
            {
                var foodItem = eCanteenEntities.FoodItem.Where(fi => fi.Id.Equals(orderItem.FoodItemId)).FirstOrDefault();

                var quantity = eCanteenEntities.OrderItem.Where(oi => oi.FoodItemId.Equals(foodItem.Id) && oi.OrderId.Equals(orderId)).FirstOrDefault().Quantity;

                ConfirmedOrderDetailDTO.OrderedItems.Add(new FoodItem {
                    Id = orderItem.FoodItemId, Name = foodItem.Name + "(" + quantity + ")", Price = foodItem.Price * quantity
                });
            });

            ConfirmedOrderDetailDTO.Vendor     = eCanteenEntities.Vendor.Where(v => v.Id.Equals(order.VenderId)).FirstOrDefault();
            ConfirmedOrderDetailDTO.PaymentVia = eCanteenEntities.Payment.Where(p => p.OrderId.Equals(orderId)).FirstOrDefault().PaymentVia;

            SendOrderConfirmationSMS(ConfirmedOrderDetailDTO);

            SendOrderConfirmationMail(ConfirmedOrderDetailDTO);

            return(ConfirmedOrderDetailDTO);
        }
예제 #2
0
        private static void SendOrderConfirmationMail(ConfirmedOrderDetailDTO confirmedOrderDetailDTO)
        {
            try
            {
                StringBuilder mailBody = new StringBuilder();

                mailBody.Append("<style>.invoice-box {max-width: 800px;margin: auto;padding: 30px;border: 1px solid #eee;box-shadow: 0 0 10px rgba(0, 0, 0, .15);font-size: 16px;");
                mailBody.Append("line-height: 24px;font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif;color: #555;background-color: white; }");
                mailBody.Append(".invoice-box table {width: 100%;line-height: inherit;text-align: left;}.invoice-box table td {padding: 5px;vertical-align: top;}");
                mailBody.Append(".invoice-box table tr td:nth-child(2) {text-align: right;}.invoice-box table tr.top table td { padding-bottom: 20px;}");
                mailBody.Append(".invoice-box table tr.top table td.title {font-size: 45px;line-height: 45px;color: #333; }.invoice-box table tr.information table td {padding-bottom: 40px;}");
                mailBody.Append(".invoice-box table tr.heading td {background: #eee;border-bottom: 1px solid #ddd;font-weight: bold;} .invoice-box table tr.details td {padding-bottom: 20px; }");
                mailBody.Append(".invoice-box table tr.item td {border-bottom: 1px solid #eee;}.invoice-box table tr.item.last td {border-bottom: none;}");
                mailBody.Append(".invoice-box table tr.total td:nth-child(2) {border-top: 2px solid #eee;font-weight: bold;}@media only screen and (max-width: 600px) {.invoice-box table tr.top table td {");
                mailBody.Append("width: 100%;display: block;text-align: center;}.invoice-box table tr.information table td {width: 100%;display: block;text-align: center;}}</style>");


                mailBody.Append("<div class='invoice-box'><table cellpadding='0' cellspacing='0'><tr class='top'><td colspan='2'><table><tr> <td class='title'>");
                mailBody.Append("<img ng-src=;'" + confirmedOrderDetailDTO.Vendor.Logo + "' style='width:100%; max-width:300px;'></td> <td></td></tr></table></td></tr>");
                mailBody.Append("<tr class='information'><td colspan='2'><table><tr><td>" + confirmedOrderDetailDTO.Vendor.Name + "<br>" + confirmedOrderDetailDTO.Vendor.ShopNo + "<br></td>");
                mailBody.Append("<td>" + confirmedOrderDetailDTO.Vendor.Contact + "<br>" + confirmedOrderDetailDTO.Vendor.Email + "</td></tr></table></td></tr>");
                mailBody.Append("<tr class='heading'><td>Payment Via</td><td></td></tr><tr class='details'><td>" + confirmedOrderDetailDTO.PaymentVia + "</td><td></td></tr><tr class='heading'>");
                mailBody.Append("<td>Item</td><td>Price</td></tr>");

                foreach (var fi in confirmedOrderDetailDTO.OrderedItems)
                {
                    mailBody.Append("<tr class='item'><td>" + fi.Name + "</td><td>" + fi.Price.ToString() + " Rs.</td></tr>");
                }

                mailBody.Append("<tr class='total'><td></td><td>Total (Incl all tax): " + confirmedOrderDetailDTO.Order.Total.ToString() + " Rs.</td></tr></table></div>");


                MailMessage mail       = new MailMessage();
                SmtpClient  SmtpServer = new SmtpClient(ConfigurationManager.AppSettings["SMTP_SERVER"].ToString());

                mail.From = new MailAddress(ConfigurationManager.AppSettings["SMTP_SENDER"].ToString());
                mail.To.Add(confirmedOrderDetailDTO.Order.Customer.Email);
                mail.To.Add(confirmedOrderDetailDTO.Vendor.Email);
                //mail.To.Add("*****@*****.**");
                mail.Subject           = "Order No" + confirmedOrderDetailDTO.Order.Id.ToString() + "|" + confirmedOrderDetailDTO.Vendor.Name + "(no reply)";
                mail.Body              = mailBody.ToString();
                mail.IsBodyHtml        = true;
                SmtpServer.Port        = 25;
                SmtpServer.Credentials = new System.Net.NetworkCredential(ConfigurationManager.AppSettings["SMTP_USERID"].ToString(), ConfigurationManager.AppSettings["SMTP_PASSWORD"].ToString());
                //SmtpServer.EnableSsl = true;

                SmtpServer.Send(mail);
            }
            catch (Exception ex)
            {
                log4net.ILog logger = log4net.LogManager.GetLogger(typeof(OrderDataAccess));

                logger.Error(ex.Message);
            }
        }
예제 #3
0
        private void SendOrderConfirmationSMS(ConfirmedOrderDetailDTO confirmedOrderDetailDTO)
        {
            try
            {
                string smsText          = "Your order has been succesfully placed, thanks for ordering!";
                string userName         = "******";
                string passwordField    = "22207";
                string companyNameField = confirmedOrderDetailDTO.Vendor.Name;

                string templateString = "Dear " + userName + ",Your Password is " + passwordField + ".Thanks and regards " + companyNameField + ".";

                WebRequest request = WebRequest.Create("http://www.smslane.com/vendorsms/pushsms.aspx?user=lprathour&password=22207&msisdn=" + confirmedOrderDetailDTO.Customer.Contact +
                                                       "&sid=WEBSMS&msg=" + smsText + "&fl=0");
                request.Method = "GET";
                WebResponse  response = request.GetResponse();
                StreamReader reader   = new StreamReader(response.GetResponseStream());
                string       str      = reader.ReadLine();
            }
            catch (Exception ex)
            {
            }
        }