public JsonResult ResetPassword([Bind(Include = "Password,UserId,RequestId")] RegisterModel registerModel)
        {
            try
            {
                Mapper.CreateMap <RegisterModel, User>();
                User userMaster = Mapper.Map <RegisterModel, User>(registerModel);
                User userFound  = _userService.GetUser(registerModel.UserId.ToString());
                if (userFound != null)
                {
                    if (!userFound.IsActive)
                    {
                        return(Json(Infrastructure.CommonClass.CreateMessage("error", "Your email verification is pending.")));
                    }

                    //Update User
                    userFound.Password = SecurityFunction.EncryptString(userMaster.Password);
                    var userDetail = _userService.UpdateUser(userFound);
                    //End : Update User

                    //Start : Update Email Verification
                    var emailVerification = _emailVerificationService.GetEmailVerification(registerModel.RequestId); //Here RequestId is EmailVerificationId
                    if (emailVerification != null)
                    {
                        emailVerification.IsOperationDone = true;
                        _emailVerificationService.UpdateEmailVerification(emailVerification);
                    }
                    //End : Update Email Verification

                    //Start : Send Email
                    EmailManager emailManager = new EmailManager();
                    EMailEntity  emailEntity  = new EMailEntity();
                    emailEntity.ToMail    = userFound.EmailId;
                    emailEntity.RequestId = registerModel.RequestId; //There is no use of RequestId. It is just for error handing in SendMailForConfirmResetPassword function.
                    emailEntity.FirstName = userFound.FirstName;
                    emailManager.SendMailForConfirmResetPassword(emailEntity);
                    //End : Send Email
                    return(Json(Infrastructure.CommonClass.CreateMessage("success", "Password is changed successfully.")));
                }
                else
                {
                    return(Json(Infrastructure.CommonClass.CreateMessage("error", "User does not exists.")));
                }
            }
            catch (Exception ex)
            {
                string ErrorMsg = ex.Message.ToString();

                ErrorLog errorlog = new ErrorLog();
                errorlog.LogError(ex);
                return(Json(Infrastructure.CommonClass.CreateMessage("error", "Please try again.")));
            }
        }
        public int SendMailOfWelcome(EMailEntity emailEntity)
        {
            MailMessage mail        = new MailMessage();
            MailAddress Sender      = new MailAddress(ConfigurationManager.AppSettings["MailFrom"]);
            string      WelcomePath = CommonClass.GetURL() + "/#/VerifyAccount?rel_id";

            emailEntity.FromMail = _FromMail;
            mail.To.Add(emailEntity.ToMail);
            mail.From    = Sender;
            mail.Subject = "Welcome to " + ConstantModel.ProjectSettings.ProjectDisplayName;
            string body      = string.Empty;
            string SiteURL   = CommonClass.GetURL();
            string Logopath  = SiteURL + "/Content/verification_email/aws-marketplace-logo.png";
            string IconPath1 = SiteURL + "/Content/verification_email/img-1.jpg";
            string IconPath2 = SiteURL + "/Content/verification_email/img-2.jpg";
            string IconPath3 = SiteURL + "/Content/verification_email/img-3.jpg";

            try
            {
                using (StreamReader reader = new StreamReader(HostingEnvironment.MapPath("~/Content/verification_email/WelcomeEmail.html")))
                {
                    body = reader.ReadToEnd();
                }
                body = body.Replace("{UserName}", emailEntity.FirstName);
                body = body.Replace("{RequestId}", emailEntity.RequestId);
                body = body.Replace("{LogoPath}", Logopath);
                body = body.Replace("{IconPath1}", IconPath1);
                body = body.Replace("{IconPath2}", IconPath2);
                body = body.Replace("{IconPath3}", IconPath3);
                body = body.Replace("{Welcome}", WelcomePath);
                body = body.Replace("{SiteURL}", SiteURL);

                body = body.Replace("{Display_Name}", ConstantModel.ProjectSettings.ProjectDisplayName);
                body = body.Replace("{Tag_Line}", ConstantModel.ProjectSettings.TagLine);
                body = body.Replace("{Owner_Name}", ConstantModel.ProjectSettings.OwnerName);
                body = body.Replace("{Footer_Display_Name}", ConstantModel.ProjectSettings.FooterDisplayName);
                body = body.Replace("{Footer_Display_Address}", ConstantModel.ProjectSettings.FooterDisplayAddress);
                AlternateView avHtml = AlternateView.CreateAlternateViewFromString(body, null, "text/html");
                mail.AlternateViews.Add(avHtml);
                mail.IsBodyHtml = true;
                SendMailWithAttachment.SendMail(emailEntity.FromMail, emailEntity.ToMail, "Welcome to " + ConstantModel.ProjectSettings.ProjectDisplayName, body.ToString());
                return(1);
            }

            catch (Exception ex)
            {
                string       ErrorMsg = ex.Message.ToString();
                ErrorLogging errLog   = new ErrorLogging();
                errLog.LogError(ex);
                return(0);
            }
        }
        public int SendMailForConfirmResetPassword(EMailEntity emailEntity)
        {
            MailMessage mail   = new MailMessage();
            MailAddress Sender = new MailAddress(ConfigurationManager.AppSettings["MailFrom"]);

            emailEntity.FromMail = _FromMail;
            mail.To.Add(emailEntity.ToMail);
            mail.From    = Sender;
            mail.Subject = "Confirmation Of Password Change";
            string body      = string.Empty;
            string Logopath  = CommonClass.GetURL() + "/Content/verification_email/aws-marketplace-logo.png";
            string Contactus = CommonClass.GetURL() + "/#/contactus";

            using (StreamReader reader = new StreamReader(HostingEnvironment.MapPath("~/Content/verification_email/ConfirmResetPassword.html")))
            {
                body = reader.ReadToEnd();
            }
            body = body.Replace("{UserName}", emailEntity.FirstName);
            body = body.Replace("{RequestId}", emailEntity.RequestId);
            body = body.Replace("{LogoPath}", Logopath);
            body = body.Replace("{ContactUs}", Contactus);
            body = body.Replace("{Display_Name}", ConstantModel.ProjectSettings.ProjectDisplayName);
            body = body.Replace("{Tag_Line}", ConstantModel.ProjectSettings.TagLine);
            body = body.Replace("{Owner_Name}", ConstantModel.ProjectSettings.OwnerName);
            body = body.Replace("{Footer_Display_Name}", ConstantModel.ProjectSettings.FooterDisplayName);
            body = body.Replace("{Footer_Display_Address}", ConstantModel.ProjectSettings.FooterDisplayAddress);
            AlternateView avHtml = AlternateView.CreateAlternateViewFromString(body, null, "text/html");

            mail.AlternateViews.Add(avHtml);
            mail.IsBodyHtml = true;
            try
            {
                SendMailWithAttachment.SendMail(emailEntity.FromMail, emailEntity.ToMail, "Password Changed", body.ToString());
                return(1);
            }
            catch (Exception ex)
            {
                string       ErrorMsg = ex.Message.ToString();
                ErrorLogging errLog   = new ErrorLogging();
                errLog.LogError(ex);
                return(0);
            }
        }
示例#4
0
        public void Execute(IJobExecutionContext context)
        {
            JobDataMap dataMap   = context.JobDetail.JobDataMap;
            string     userId    = dataMap.GetString("UserId");
            string     emailType = dataMap.GetString("EmailType");
            var        user      = _userService.GetUser(userId);

            if (user != null)
            {
                //Start : Insert Email Verification
                EmailVerification emailverification = new EmailVerification();
                emailverification.UserId          = user.UserId;
                emailverification.EmailType       = emailType;
                emailverification.ActiveForMinute = ConstantModel.ProjectSettings.EmailExpireLimit; //Valid upto 24-Hours
                emailverification.IsActive        = true;
                emailverification.IsOperationDone = false;
                var emailVerificationResult = _emailVerificationService.InsertEmailVerification(emailverification);
                //End : Insert Email Verification

                //Start : Sending welcome mail after registeration or Reverify account email
                EmailManager emailManager = new EmailManager();
                EMailEntity  emailEntity  = new EMailEntity();
                emailEntity.ToMail    = user.EmailId;
                emailEntity.RequestId = emailVerificationResult.EmailVerificationId.ToString(); //Here RequestId is EmailVerificationId
                emailEntity.FirstName = user.FirstName;
                if (emailType == EnumValue.GetEnumDescription(EnumValue.EmailType.WelcomeEmail))
                {
                    emailManager.SendMailOfWelcome(emailEntity);
                }
                else if (emailType == EnumValue.GetEnumDescription(EnumValue.EmailType.ReverifyAccount))
                {
                    emailManager.SendMailForReverifyAccount(emailEntity);
                }
                //End : Sending welcome mail after registeration or Reverify account email
            }
        }
        // GET: /Account/ForgotPasswordMail
        public JsonResult ForgotPasswordMail(RegisterModel registerModel)
        {
            int result = -1;

            try
            {
                var userInfo = base._userService.GetUserByName(registerModel.Email);
                if (userInfo != null)
                {
                    EmailVerification emailverification = new EmailVerification();
                    emailverification.UserId          = userInfo.UserId;
                    emailverification.EmailType       = EnumValue.GetEnumDescription(EnumValue.EmailType.ResetPassword);
                    emailverification.ActiveForMinute = ConstantModel.ProjectSettings.EmailExpireLimit; //Valid upto 24-Hours
                    emailverification.IsActive        = true;
                    emailverification.IsOperationDone = false;
                    var emailVerificationResult = _emailVerificationService.InsertEmailVerification(emailverification);

                    EmailManager emailManager = new EmailManager();
                    EMailEntity  emailEntity  = new EMailEntity();
                    emailEntity.ToMail    = userInfo.EmailId;
                    emailEntity.RequestId = emailVerificationResult.EmailVerificationId.ToString();
                    emailEntity.FirstName = userInfo.FirstName;
                    result = emailManager.SendMailForResetPassword(emailEntity);

                    return(Json(Infrastructure.CommonClass.CreateMessage("success", result), JsonRequestBehavior.AllowGet));
                }
                return(Json(Infrastructure.CommonClass.CreateMessage("error", "This email id does not exist. Please try again."), JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                string   ErrorMsg = ex.Message.ToString();
                ErrorLog errorlog = new ErrorLog();
                errorlog.LogError(ex);
                return(Json(Infrastructure.CommonClass.CreateMessage("error", "Something went wrong.Please try later."), JsonRequestBehavior.AllowGet));
            }
        }