public async Task <IActionResult> SendResetPasswordEmail([FromBody] ForgetPasswordRequestModel objModel)
        {
            JsonResponse <User> objResultList = new JsonResponse <User>();

            if (objModel != null)
            {
                try
                {
                    bool matched = await this.authService.MatchSecretKey(objModel.SecretKey);

                    if (!matched)
                    {
                        objResultList.Data    = null;
                        objResultList.Status  = StaticResource.UnauthorizedStatusCode;
                        objResultList.Message = StaticResource.UnauthorizedMessage;
                        return(new OkObjectResult(objResultList));
                    }

                    User response = await this.authService.ResetPassword(objModel);

                    switch (response.Status)
                    {
                    case 1:
                        objResultList.Data    = null;
                        objResultList.Status  = StaticResource.SuccessStatusCode;
                        objResultList.Message = StaticResource.EmailSent;
                        break;

                    case 0:
                        objResultList.Data    = null;
                        objResultList.Status  = StaticResource.NotFoundStatusCode;
                        objResultList.Message = StaticResource.EmailNotExist;
                        break;

                    default:
                        objResultList.Data    = null;
                        objResultList.Status  = StaticResource.NotFoundStatusCode;
                        objResultList.Message = StaticResource.NotFoundMessage;
                        break;
                    }
                }
                catch (Exception ex)
                {
                    HttpContext.RiseError(ex);
                    objResultList.Data    = null;
                    objResultList.Status  = StaticResource.FailStatusCode;
                    objResultList.Message = StaticResource.FailMessage;
                    throw;
                }
            }
            else
            {
                objResultList.Data    = null;
                objResultList.Status  = StaticResource.FailStatusCode;
                objResultList.Message = StaticResource.FailMessage;
            }

            return(new OkObjectResult(objResultList));
        }
Ejemplo n.º 2
0
        public ActionResult ForgetPasswordRequest()
        {
            //var UserName = UserAccountHelper.GetUser(HttpContext.User.Identity.Name).UserName;
            // userService.ResetPassword(UserName);
            var model = new ForgetPasswordRequestModel();

            return(View(model));
            // return RedirectToAction("Index");
        }
        public async Task <User> ResendEmailToUser(ForgetPasswordRequestModel obj_ForgetPasswordRequestModel, HttpContext context)
        {
            try
            {
                var result = await commonEmailsService.ResendEmailToUser(obj_ForgetPasswordRequestModel, context);

                return(result);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public async Task <User> SendRestPasswordEmailByAdmin(ForgetPasswordRequestModel obj_ForgetPasswordRequestModel, HttpContext context)
        {
            try
            {
                var result = await commonEmailsService.SendRestPasswordEmailByAdmin(obj_ForgetPasswordRequestModel.EmailId, obj_ForgetPasswordRequestModel.UserId, context);

                return(result);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// Send Reset password Email to user
        /// </summary>
        /// <param name="obj_ForgetPasswordRequestModel"></param>
        /// <returns></returns>
        public async Task <User> ResetPassword(ForgetPasswordRequestModel obj_ForgetPasswordRequestModel)
        {
            try
            {
                var result = await commonEmailsService.SendRestPasswordEmail(obj_ForgetPasswordRequestModel.EmailId);

                return(result);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 6
0
        public async Task <User> ResendEmailToUser(ForgetPasswordRequestModel forgetPasswordModel, HttpContext context)
        {
            string strEmailSubject = string.Empty;
            User   obj             = new User();

            strEmailSubject = _iconfiguration.GetValue <string>("AuthMessageSenderOptions:WelcomeEmail");
            var homeUrl = _iconfiguration.GetValue <string>("AuthMessageSenderOptions:StaggingUrl");

            try
            {
                var    emailHtml = "";
                string directory = $"{Directory.GetCurrentDirectory()}{@"\wwwroot"}";
                if (forgetPasswordModel.TemplateID == 1)
                {
                    emailHtml = System.IO.File.ReadAllText(directory + "/Templates/Welcome_Super_Admin.html"); //
                }
                else if (forgetPasswordModel.TemplateID == 2)
                {
                    emailHtml = System.IO.File.ReadAllText(directory + "/Templates/WelcomeEmail_Member.html");
                }
                else
                {
                    emailHtml = System.IO.File.ReadAllText(directory + "/Templates/WelcomeEmail_Practioner.html");
                }
                string logoPath   = context.Request.Scheme + "://" + context.Request.Host + context.Request.PathBase + "//images//sessionsLogoBlack.png";
                string newsletter = context.Request.Scheme + "://" + context.Request.Host + context.Request.PathBase + "//images//newsletter.png";

                emailHtml = emailHtml.Replace("{{HOME}}", homeUrl);
                emailHtml = emailHtml.Replace("{{logo}}", logoPath);
                emailHtml = emailHtml.Replace("{{newsletter}}", newsletter);
                await _iEmailSenderService.SendEmailAsync(_iconfiguration.GetValue <string>("AuthMessageSenderOptions:SendGridEmail"), forgetPasswordModel.EmailId, strEmailSubject, emailHtml);

                obj.Status = 1;
                return(obj);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Ejemplo n.º 7
0
        public async Task <IActionResult> ResendEmailToUsers([FromBody] ForgetPasswordRequestModel objModel)
        {
            JsonResponse <User> objResultList = new JsonResponse <User>();
            HttpContext         context       = HttpContext;

            try
            {
                User response = await this.authService.ResendEmailToUser(objModel, context);

                switch (response.Status)
                {
                case 1:
                    objResultList.Data    = null;
                    objResultList.Status  = StaticResource.SuccessStatusCode;
                    objResultList.Message = StaticResource.EmailSent;
                    break;

                case 0:
                    objResultList.Data    = null;
                    objResultList.Status  = StaticResource.NotFoundStatusCode;
                    objResultList.Message = StaticResource.EmailNotExist;
                    break;

                default:
                    objResultList.Data    = null;
                    objResultList.Status  = StaticResource.NotFoundStatusCode;
                    objResultList.Message = StaticResource.NotFoundMessage;
                    break;
                }
            }
            catch (Exception ex)
            {
                HttpContext.RiseError(ex);
                objResultList.Data    = null;
                objResultList.Status  = StaticResource.FailStatusCode;
                objResultList.Message = StaticResource.FailMessage;;
            }
            return(new OkObjectResult(objResultList));
        }
        public async Task <IHttpActionResult> ForgetPassword(ForgetPasswordRequestModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Your request is not valid."));
            }
            var isEmailExist = _userService.IsEmailExist(model.Email);

            if (!isEmailExist)
            {
                return(BadRequest(model.Email + " email does not exist."));
            }

            var user = await _userService.FindByEmailAsync(model.Email);

            if (user != null && !user.IsActive)
            {
                return(BadRequest("User is not active. Failed to send password reset link."));
            }

            await _userService.SendPasswordResetLinkAsync(model.Email);

            return(Ok(true));
        }
Ejemplo n.º 9
0
        public ForgetPasswordResponseModel ForgetPassword(ForgetPasswordRequestModel model)
        {
            ForgetPasswordResponseModel FPRM = new ForgetPasswordResponseModel();

            try
            {
                Users UserValidEmailId   = _ObjDBContext.Users.FirstOrDefault(u => u.Email.ToLower() == model.EmailId.ToLower() && u.IsActive == true && u.IsDeleted == false);
                Users UserValidMobileNum = _ObjDBContext.Users.FirstOrDefault(u => u.MobilePhoneNumber.ToLower() == model.MobileNum.ToLower() && u.IsActive == true && u.IsDeleted == false);

                Random _random = new Random();
                string otp     = _random.Next(0, 999999).ToString("D6");

                if (UserValidEmailId != null)
                {
                    var UpdateOTPEmail = _ObjDBContext.Users.Where(s => s.Email == model.EmailId).FirstOrDefault();
                    if (UpdateOTPEmail != null)
                    {
                        UpdateOTPEmail.Otp = otp;
                        _ObjDBContext.Entry(UpdateOTPEmail).State = EntityState.Modified;
                        _ObjDBContext.SaveChanges();
                    }

                    SendEmailRequestModel SERM = new SendEmailRequestModel();
                    SERM.CustomerName      = UserValidEmailId.FirstName;
                    SERM.FileAttachmentURL = "";
                    SERM.MessageBody       = "Hi " + UserValidEmailId.FirstName + " Please Use " + otp + " as OTP for Change password!";
                    SERM.Subject           = "Squeeze Bill Forget Password";
                    SERM.ToEmailId         = UserValidEmailId.Email;
                    EmailService ES           = new EmailService();
                    string       EmailService = ES.SendEmail(SERM);
                    FPRM.Response.Message    = "Please check your Email Inbox for change password !";
                    FPRM.Response.StatusCode = 200;
                }
                else if (UserValidEmailId == null)
                {
                    FPRM.Response.Message    = model.EmailId + " Invalid";
                    FPRM.Response.StatusCode = 201;
                }
                else if (UserValidMobileNum != null)
                {
                    var UpdateOTPMobile = _ObjDBContext.Users.Where(s => s.MobilePhoneNumber == model.MobileNum).FirstOrDefault();
                    if (UpdateOTPMobile != null)
                    {
                        UpdateOTPMobile.Otp = otp;
                        _ObjDBContext.Entry(UpdateOTPMobile).State = EntityState.Modified;
                        _ObjDBContext.SaveChanges();
                    }

                    SendSMSRequestModel SSRM = new SendSMSRequestModel();
                    SSRM.CustomerName = UserValidEmailId.FirstName;
                    SSRM.MessageBody  = "Hi " + UserValidEmailId.FirstName + " Please Use " + otp + " as OTP for Change password!";
                    SSRM.ToMobileNum  = UserValidEmailId.MobilePhoneCountryCode + " " + UserValidEmailId.MobilePhoneNumber;
                    SMSService SS         = new SMSService();
                    string     SMSService = SS.SendSMS(SSRM);
                    FPRM.Response.Message    = "Please check your Mobile Message for change password !";
                    FPRM.Response.StatusCode = 200;
                }
                else if (UserValidMobileNum == null)
                {
                    FPRM.Response.Message    = model.MobileNum + " Invalid";
                    FPRM.Response.StatusCode = 201;
                }
            }
            catch (Exception ex)
            {
                _log.LogInformation("UnExpected");
                FPRM.Response.Message    = Convert.ToString(ex);
                FPRM.Response.StatusCode = 401;
            }
            return(FPRM);
        }
Ejemplo n.º 10
0
 public ForgetPasswordResponseModel ForgetPassword([FromBody] ForgetPasswordRequestModel model)
 {
     return(_ObjILogin.ForgetPassword(model));
 }
Ejemplo n.º 11
0
        public ActionResult ForgetPasswordRequest(ForgetPasswordRequestModel model)
        {
            if (ModelState.IsValid)
            {
                var user = _userAccountService.GetUserDetail(model.UserName);
                if (user != null)
                {
                    var forgetPasswordRequest = new ForgetPasswordRequest()
                    {
                        Completed     = false,
                        ExpieryDate   = DateTime.Now.AddMonths(2),
                        GeneratedDate = DateTime.Now,

                        RequestKey    = MD5Hashing.MD5Hash(Guid.NewGuid().ToString()),
                        UserProfileID = user.UserProfileID

                                        //RequestKey = MD5Hashing.MD5Hash(Guid.NewGuid().ToString()),
                                        //UserAccountID = user.UserAccountId
                    };
                    if (_forgetPasswordRequestService.AddForgetPasswordRequest(forgetPasswordRequest))
                    {
                        string to          = user.Email;
                        string subject     = "Password Change Request";
                        var    callbackUrl = Url.Action("ForgetPassword", "Account", new { key = forgetPasswordRequest.RequestKey }, protocol: Request.Url.Scheme);

                        //string link = "localhost:" + Request.Url.Port + "/Account/ForgetPassword/?key=" + forgetPasswordRequest.RequestKey;
                        string body = string.Format(@"Dear {1}
                                                            <br /><br />
                                                        A password reset request has been submitted for your Email account. If you submitted this password reset request, please follow the following link. 
                                                        <br /><br />
                                                        <a href='{0}'>Please Follow this Link</a> <br />
                                                        <br /><br />
                                                        Please ignore this message if the password request was not submitted by you. This request will expire in 24 hours.
                                                        <br /><br />
                                                        Thank you,<br />
                                                        Administrator.
                                                        ", callbackUrl, user.UserName);
                        try
                        {
                            // Read the configuration table for smtp settings.

                            string from     = _settingService.GetSettingValue("SMTP_EMAIL_FROM");
                            string smtp     = _settingService.GetSettingValue("SMTP_ADDRESS");
                            int    port     = Convert.ToInt32(_settingService.GetSettingValue("SMTP_PORT"));
                            string userName = _settingService.GetSettingValue("SMTP_USER_NAME");
                            string password = _settingService.GetSettingValue("SMTP_PASSWORD");
                            // send the email using the utilty method in the shared dll.
                            Cats.Helpers.SendMail mail = new Helpers.SendMail(from, to, subject, body, null, true, smtp, userName, password, port);

                            ViewBag.ErrorMessage   = "Email has been sent to your email Address.";
                            TempData["ModelState"] = ViewBag.ErrorMessage;
                            return(RedirectToAction("ConfirmPasswordChange"));
                        }
                        catch (Exception e)
                        {
                            ViewBag.ErrorMessage = "The user name or email address you provided is not correct. Please try again.";
                        }
                    }

                    ViewBag.ErrorMessage = "Internal Error....";
                }

                ViewBag.ErrorMessage = "Invalid User Name " + model.UserName;
            }
            return(View());
        }