Ejemplo n.º 1
0
        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)));
        }
Ejemplo n.º 2
0
        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);
            }
        }