public ActionResult Login(string returnUrl, LoginPageMessage message) { if (returnUrl == "/Account/LogOff") { return(Redirect("/")); } ViewBag.Message = message; ViewBag.ReturnUrl = returnUrl; return(View()); }
public async Task <ActionResult> GetPassword(GetPasswordViewModel model) { if (ModelState.IsValid) { var employee = ERSAIDB.Employees.FirstOrDefault(e => e.BadgeNumber == model.BadgeNumber); if (employee == null) { ModelState.AddModelError("", "No employee with specified badge number"); return(View(model)); } if (employee.BirthDate?.Date != model.BirthDate?.Date) { ModelState.AddModelError("", "Wrong date of birth"); return(View(model)); } var payslipUser = ERSAIDB.PersonalAccountUsers.FirstOrDefault(u => u.Badge == employee.BadgeNumber); payslipUser = payslipUser ?? ERSAIDB.PersonalAccountUsers.Add(new DataModels.ERSAI.PersonalAccountUser() { Badge = employee.BadgeNumber, ModifiedDate = DateTime.Now }); /*payslipUser.AppUser = payslipUser.AppUser ?? new AppUser() * { * SecurityStamp = Guid.NewGuid().ToString(), * UserName = employee.BadgeNumber * };*/ var newPassword = payslipUser.SetNewPassword(); ERSAIDB.SaveChanges(); bool mailSent = false, SMSSent = false; if (App.SMTPClient != null) { try { App.SMTPClient.TrySendEmail(new IntegrationClients.SMTP.EmailMessage() { Body = $"Your new password is {newPassword}", Header = IntegrationClients.SMTP.MessageHeader.GetDefault(employee.FullName), Footer = IntegrationClients.SMTP.MessageFooter.GetDefault(), Subject = "Your new password", To = payslipUser.ERSAIAccount?.Mail }); mailSent = true; } catch { mailSent = false; } } if (App.SMSClient != null) { try { var response = await App.SMSClient.SendSMS(new IntegrationClients.Infobip.SMSMessage() { To = new[] { payslipUser.MobPhone?.Primary_MobilePhone }, Text = $"Your new payslip password is:{Environment.NewLine}{newPassword}" }); SMSSent = true; } catch { SMSSent = false; } } LoginPageMessage message; if (SMSSent || mailSent) { message = new LoginPageMessage() { CssClass = "positive", Content = $"Your new password was sent to {(mailSent ? (payslipUser.ERSAIAccount?.Mail + (SMSSent ? " and " : string.Empty)) : string.Empty)}{(SMSSent ? payslipUser.MobPhone?.Primary_MobilePhone : "")}" } } ; else { message = new LoginPageMessage() { CssClass = "error", Content = "We couldn't send your new password to you due to contact information absense. Please, contact your HR" } }; return(RedirectToAction("Login", message)); } // If we got this far, something failed, redisplay form return(View(model)); }