public IActionResult Login([FromBody] MLogin login) { var person = _bPerson.SearchForPerson(login); if (person == null) { return(BadRequest(ResponseContent.Create(null, HttpStatusCode.BadRequest, "E-mail e/ou senha incorreto(s)!"))); } var passwordRecoveryRequest = _uRecoveryPassword.GetUserCurrentActive(person.Id); if (passwordRecoveryRequest != null) { passwordRecoveryRequest.CancelationDate = DateTime.Now; passwordRecoveryRequest.Active = false; _bPasswordRecovery.Update(passwordRecoveryRequest); _bHistory.SaveHistory(person.Id, "Usuário cancelou uma solicitação de recuperação da senha através do login"); } HttpContext.Session.Authenticate(person); var res = person.Profile == (int)EProfile.Teacher ? "/teacher" : "/student"; _bHistory.SaveHistory(person.Id, "Usuário autenticou no sistema"); return(Ok(ResponseContent.Create(res, HttpStatusCode.OK, null))); }
public void Request(Person person, ref bool hasOpenRequest) { var currentActive = _uPasswordRecovery.GetUserCurrentActive(person.Id); if (currentActive != null) { currentActive.Active = false; currentActive.CancelationDate = DateTime.Now; _context.PasswordRecovery.Update(currentActive); hasOpenRequest = true; } var passwordRecovery = new PasswordRecovery { Person = person, RequestDate = DateTime.Now, ExpirationDate = DateTime.Now.AddDays(1), Active = true, Token = Guid.NewGuid().ToString() }; _context.PasswordRecovery.Add(passwordRecovery); _context.SaveChanges(); if (_sEmail != null) { SendEmail(passwordRecovery); } }