public async Task <Response <Jwt> > SignIn(SignInQueryFilter model)
        {
            User user = await userRepository.GetAuth(model);

            Administrator administrator = await administratorRepository.GetAuth(model);

            if (user == null && administrator == null)
            {
                throw new BusinessException("Los datos que ingresaste no coinciden con ninguna cuenta");
            }

            var data =
                new {
                Id   = user != null ? user.Id : administrator.Id,
                Role = user != null ? "user" : "administrator"
            };

            var token = jwtUtil.Generate(data);

            if (token == null)
            {
                throw new BusinessException("Los datos que ingresaste no coinciden con ninguna cuenta");
            }

            token.User          = user;
            token.Administrator = administrator;

            return(new Response <Jwt>(true, "", token));
        }
Esempio n. 2
0
        public async Task <Jwt> Authenticate(SignInQueryFilter user)
        {
            var userData = await userRepository.GetByEmailPassword(user);

            if (userData == null)
            {
                throw new BusinessException("Los datos de acceso son incorrectos");
            }
            var data = new {
                Id   = userData.Id,
                Name = userData.Name
            };

            var token = jwtUtil.Generate(data);

            if (token == null)
            {
                throw new BusinessException("No se puede iniciar sesión, intente nuevamente");
            }

            token.User = userData;

            return(token);
        }