Пример #1
0
        //Login function
        public async Task <LoginRespond> LoginServiceAsync(StudentLoginModel model)
        {
            //validation functions
            var context = new ValidationContext(model, serviceProvider: null, items: null);
            var results = new List <ValidationResult>();

            if (Validator.TryValidateObject(model, context, results, true))
            {
                string passwordEncoded = Encoder(model.Password);     //encode password

                return(await CheckInfoAsync(model, passwordEncoded)); //check whether user exists
            }
            else
            {
                //If validation failed
                LoginRespond loginRespond = new LoginRespond
                {
                    Pass      = false,
                    Email     = model.Email,
                    Token     = "Failed to login due to the incorrect email or password",
                    LoginTime = DateTime.Now
                };

                return(loginRespond);
            }
        }
Пример #2
0
 public ActionResult <ReadUserDto> ResetPasswordEmail(ResetPassEmailRequest request)
 {
     try{
         LoginRespond r = _service.resetPass(request.Email, request.NewPass);
         return(Ok(r));
     }catch (Exception e) {
         Console.WriteLine(e.Message);
         return(BadRequest(e.Message));
     }
 }
Пример #3
0
 public ActionResult <ReadUserDto> signIn(LoginRequest user)
 {
     try{
         LoginRespond r = _service.signIn(user);
         return(Ok(r));
     }catch (Exception e) {
         Console.WriteLine(e.ToString());
         return(BadRequest(e.Message));
     }
 }
Пример #4
0
 public ActionResult <ReadUserDto> signIn(LoginRequest user)
 {
     try{
         LoginRespond r = _service.signIn(user);
         //if(r!=null) setTokenCookie(r.RefreshToken,r.RefreshTokenId);
         return(Ok(r));
     }catch (Exception e) {
         Console.WriteLine(e.ToString());
         return(BadRequest(e.Message));
     }
 }
Пример #5
0
        public async Task <LoginRespond> Login(LoginModel loginModel)
        {
            LoginRespond loginRespond = new LoginRespond();

            try
            {
                loginRespond = await Post <LoginRespond, LoginModel>(LoginUserAPI, loginModel);
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine(e.Message);
            }

            return(loginRespond);
        }
Пример #6
0
        public async Task <ActionResult> Login([FromBody] StudentLoginModel model)
        {
            try
            {
                LoginRespond loginRespond = await _accountService.LoginServiceAsync(model);

                if (loginRespond.Pass)
                {
                    return(Ok(loginRespond));
                }
                else
                {
                    return(BadRequest(loginRespond));
                }
            }
            catch
            {
                return(BadRequest(model));
            }
        }
Пример #7
0
        //For login --helper
        //Generate token and update logs
        private async Task <LoginRespond> CheckInfoAsync(StudentLoginModel studentLogin, string passwordEncoded)
        {
            var user = _context.Users.SingleOrDefault(i => i.Email == studentLogin.Email);

            if (user.Password == passwordEncoded)
            {
                LoginLogger loginLogger = new LoginLogger
                {
                    Email        = studentLogin.Email,
                    Password     = passwordEncoded,
                    LoginSuccess = true,
                    Time         = DateTime.Now
                };
                _context.LoginLogs.Add(loginLogger);
                await _context.SaveChangesAsync();

                string token = Encoder(DateTime.Now.ToString());

                var  student    = _context.Students.SingleOrDefault(i => i.Email == studentLogin.Email);
                bool isAccepted = false;
                if (student != null)
                {
                    isAccepted = student.AdminPermition == true ? true : false;
                }

                LoginRespond loginRespond = new LoginRespond
                {
                    Pass       = true,
                    Email      = loginLogger.Email,
                    Token      = token,
                    LoginTime  = DateTime.Now,
                    IsAdmin    = user.UserRole == Role.Admin ? true : false,
                    IsAccepted = isAccepted
                };

                await AddTokenLog(loginLogger.Email, token, user.UserRole);

                user = null;

                return(loginRespond);
            }
            else
            {
                LoginLogger loginLogger = new LoginLogger
                {
                    Email        = studentLogin.Email,
                    Password     = passwordEncoded,
                    LoginSuccess = false,
                    Time         = DateTime.Now
                };
                _context.LoginLogs.Add(loginLogger);
                await _context.SaveChangesAsync();

                return(new LoginRespond
                {
                    Pass = false,
                    Email = studentLogin.Email,
                    LoginTime = DateTime.Now,
                    Token = "Login Failed"
                });
            }
        }