Ejemplo n.º 1
0
        public ActionResult Forgetpass(ForgetPassModel mode)
        {
            if (_captchaShow)
            {
                if (!mode.Captcha.ToLower().Equals(Session[ConstantKeys.CaptchaSession].ToString().ToLower()))
                {
                    return Json(new { Status = 0, Message = "Enter security code not correct!" });
                }
            }

            string emailFrom = AppSettings.Settings.SMTPAccount;
            string emailCc = ConfigurationManager.AppSettings["EmailCc"];
            string emailBcc = ConfigurationManager.AppSettings["EmailBcc"];
            string linkChangePass = ConfigurationManager.AppSettings["LinkChangePassword"];
            string siteUrl = AppSettings.Settings.SiteUrl.TrimEnd('/'); //ConfigurationManager.AppSettings["SiteUrl"].TrimEnd('/');

            Guid guid = Guid.NewGuid();
            var user = _userService.GetUserByEmail(mode.EmailTo);
            if (user != null)
            {
                string encyptToken = guid.ToString();//CryptorEngine.Encrypt(guid.ToString(), true);
                //string encyptEmail = CryptorEngine.Encrypt(mode.EmailTo, true);

                user.TokenForgotPassWord = encyptToken;
                _userService.Update(user);
                _unitOfWork.SaveChanges();

                // linkChangePass = string.Format(linkChangePass, siteUrl, encyptToken, encyptEmail);
                linkChangePass = string.Format(linkChangePass, siteUrl, encyptToken);

                var emailTemplateId = (int)EmailTemplateType.ForgetPass;
                var emaiTemplate = _emailTemplateService.GetEmailByID(emailTemplateId);

                var subject = emaiTemplate.Subject;
                string mailbody = emaiTemplate.Content;;
                mailbody = mailbody.Replace(ConstantKeys.UserName, user.UserName);
                mailbody = mailbody.Replace(ConstantKeys.ResetPasswordUrl, linkChangePass);
                mailbody = mailbody.Replace(ConstantKeys.SiteUrl, siteUrl);

                string ip = System.Web.HttpContext.Current.Request.UserHostAddress;

                var status = SendMailUtility.SendMailWithOutCC(subject, mailbody, mode.EmailTo, emailCc, emailBcc);

                var emailqueues = new EmailQueue();
                if (ModelState.IsValid)
                {
                    emailqueues.EmailFrom = emailFrom;
                    emailqueues.SendBy = user.UserId;
                    emailqueues.Active = status;
                    emailqueues.CreatedDate = DateTime.Now;
                    emailqueues.UpdatedDate = DateTime.Now;
                    emailqueues.EmailTo = mode.EmailTo;
                    emailqueues.EmailCc = emailCc;
                    emailqueues.EmailBcc = emailBcc;
                    emailqueues.EmailSubject = subject;
                    emailqueues.SenderIP = ip;
                    emailqueues.DisplayNameFrom = user.UserName;

                    _emailQueueService.Insert(emailqueues);
                    _unitOfWork.SaveChanges();
                }

            }
            else
            {
                return Json(new { Status = 0, Message = "Email not exist!" });
            }
            return Json(new { Status = 1, Message = "Please, check your email." });
        }
Ejemplo n.º 2
0
        public ActionResult _CheckoutInFormCart(CheckoutModel model)
        {
            if (ModelState.IsValid)
            {
                string message;
                var orderId = CreateOrder(model);
                if (orderId > 0)
                {
                    var order = _orderService.Find(orderId);

                    message = _content.Find((int)ContentType.CreateOrderSuccess).Value;
                    if (!string.IsNullOrEmpty(model.Email))
                    {
                        try
                        {
                            var appSettings = AppSettings.Settings;
                            string emailFrom = appSettings.EmailAdmin;
                            string emailCc = appSettings.EmailAdmin;
                            string emailBcc = appSettings.CompanyEmail;

                            var emailTemplateId = (int)EmailTemplateType.ConfirmOrder;
                            var emaiTemplate = _emailTemplateService.GetEmailByID(emailTemplateId);

                            var subject = emaiTemplate.Subject;

                            string mailbody = emaiTemplate.Content;
                            mailbody = mailbody.Replace(ConstantKeys.UserName, model.FullName);

                            var detail = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"min-width:500px; color:#3A3A3A;\">";
                            detail += "<tbody><tr><td style=\"border: 1px solid #575757; padding: 4px;\"><strong>Tên sản phẩm</strong></td><td style=\"border: 1px solid #575757; padding: 4px;\"><strong>Số lượng</strong></td><td style=\"border: 1px solid #575757; padding: 4px;\"><strong>Giá</strong></td></tr>";
                            var orderDetails = _orderDetailService.ListOrderDetailByOrderId(order.Id);

                            var orderDetailModels = new List<OrderDetailModel>();
                            AutoMapper.Mapper.CreateMap<OrderDetail, OrderDetailModel>();
                            orderDetailModels = AutoMapper.Mapper.Map<List<OrderDetail>, List<OrderDetailModel>>(orderDetails);

                            foreach (var item in orderDetailModels)
                            {
                                item.Product = _productService.GetProductById(item.ProductId);
                                detail += "<tr><td style=\"border: 1px solid #575757; padding: 4px;\">" + item.Product.Name + "</td><td style=\"border: 1px solid #575757;padding: 4px; \">" + item.Quantity + "</td><td style=\"border: 1px solid #575757; padding: 4px;\">" + item.Product.Price.ToString("#,###") + "</td></tr>";
                            }

                            detail += "<tr><td style=\"border: 1px solid #575757; padding: 4px;\">&nbsp;</td><td style=\"border: 1px solid #575757; padding: 4px;\"><strong>TỔNG TIỀN</strong></td><td style=\"border: 1px solid #575757; padding: 4px;\">" + order.Total.Value.ToString("#,###") + "</td></tr>";
                            detail += "</tr></tbody></table>";

                            mailbody += detail;

                            // send mail to guest
                            var status = SendMailUtility.SendMailWithOutCC("", subject, mailbody, model.Email); // subject, content, emailTo, cc, bcc

                            string ip = System.Web.HttpContext.Current.Request.UserHostAddress;
                            var emailqueues = new EmailQueue();

                            emailqueues.EmailFrom = emailFrom;
                            //emailqueues.Department = 0;
                            emailqueues.Active = status;
                            emailqueues.CreatedDate = DateTime.Now;
                            emailqueues.UpdatedDate = DateTime.Now;
                            emailqueues.EmailTo = model.Email;
                            emailqueues.EmailCc = emailFrom;
                            emailqueues.EmailBcc = emailBcc;
                            emailqueues.EmailSubject = subject;
                            emailqueues.SenderIP = ip;
                            emailqueues.DisplayNameFrom = model.FullName;

                            _emailQueueService.Insert(emailqueues);
                            _unitOfWork.SaveChanges();
                        }
                        catch { }
                    }
                }
                else
                    message = _content.Find((int)ContentType.CreateOrderUnSuccess).Value;
                //message = "<div class=\"msgCart\">Xảy ra lỗi trong quá trình đặt hàng. </div>" +
                //   "<div class=\"msgCart\">Vui lòng gọi <span class=\"txtRed\">0904.085.130</span> hoặc <span class=\"txtRed\">0466.808.838</span>. Trở về <a href=\"/\">trang chủ</a></div>";
                message = message.Replace(ConstantKeys.UserName.ToString(), model.FullName);
                return Content(message, "text/html");
            }
            else return View(model);
        }