예제 #1
0
        public object logoutstudent(int id)
        {
            var student = _context.Students.Include(i => i.User).Where(w => w.ID == id).FirstOrDefault();

            if (student == null)
            {
                return(CreatedAtAction(nameof(logoutstudent), new { result = ResultCode.DataHasNotFound, message = ResultMessage.DataHasNotFound }));
            }

            var tokens = _context.LoginTokens.Where(w => w.StudentID == id);

            if (tokens.Count() > 0)
            {
                _context.LoginTokens.RemoveRange(tokens);
            }

            var log = new LoginStudentHistory();

            log.StudentID = student.ID;
            log.UserID    = student.UserID;
            log.AuthType  = AuthType.Logout;
            log.Create_On = DateUtil.Now();
            log.Create_By = student.User.UserName;
            log.Update_On = DateUtil.Now();
            log.Update_By = student.User.UserName;
            _context.LoginStudentHistorys.Add(log);
            _context.SaveChanges();

            return(CreatedAtAction(nameof(loginstudent), new { result = ResultCode.Success, message = ResultMessage.Success }));
        }
예제 #2
0
        public object loginstudent(string username, string password)
        {
            var user = _context.Users.Where(w => w.UserName == username).FirstOrDefault();

            if (user == null)
            {
                return(CreatedAtAction(nameof(login), new { result = ResultCode.WrongAccountorPassword, message = ResultMessage.WrongAccountorPassword }));
            }

            var dpassword = DataEncryptor.Decrypt(user.Password);

            if (password == dpassword)
            {
                var token   = CreateToken(user);
                var student = _context.Students.Where(w => w.UserID == user.ID & w.Status == StatusType.Active).Select(s => new
                {
                    username    = s.User.UserName,
                    id          = s.UserID,
                    studentid   = s.ID,
                    studentcode = s.StudentCode,
                    course      = s.Course,
                    prefix      = s.Prefix.toPrefixName(),
                    firstname   = s.FirstName,
                    lastname    = s.LastName,
                    idcard      = s.IDCard,
                    profileImg  = "",
                }).FirstOrDefault();

                if (student == null)
                {
                    return(CreatedAtAction(nameof(loginstudent), new { result = ResultCode.DataHasNotFound, message = ResultMessage.DataHasNotFound }));
                }


                var log = new LoginStudentHistory();
                log.StudentID = student.studentid;
                log.UserID    = student.id;
                log.AuthType  = AuthType.Login;
                log.Create_On = DateUtil.Now();
                log.Create_By = student.username;
                log.Update_On = DateUtil.Now();
                log.Update_By = student.username;
                _context.LoginStudentHistorys.Add(log);

                var tokens = _context.LoginTokens.Where(w => w.StudentID == student.studentid);
                if (tokens.Count() > 0)
                {
                    _context.LoginTokens.RemoveRange(tokens);
                }

                var tok = new LoginToken();
                tok.StudentID  = student.studentid;
                tok.UserID     = student.id;
                tok.Token      = token;
                tok.Create_On  = DateUtil.Now();
                tok.Create_By  = student.username;
                tok.Update_On  = DateUtil.Now();
                tok.Update_By  = student.username;
                tok.ExpiryDate = DateUtil.Now().AddHours(8);
                _context.LoginTokens.Add(tok);
                _context.SaveChanges();

                return(CreatedAtAction(nameof(loginstudent), new { result = ResultCode.Success, message = ResultMessage.Success, token = token, user = student }));
            }
            return(CreatedAtAction(nameof(loginstudent), new { result = ResultCode.WrongAccountorPassword, message = ResultMessage.WrongAccountorPassword }));
        }