public async Task <ActionResult> Login(LoginModel objLogin, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                //account - loginmodel
                ApplicationUser oUser = await SignInManager.UserManager.FindByNameAsync(objLogin.Email);

                if (oUser != null && oUser.Password == objLogin.Password)
                {
                    switch (oUser.Status)
                    {
                    case EnumAccountStatus.Pending:
                        ModelState.AddModelError("", "Error: User account has not been verified.");
                        break;

                    case EnumAccountStatus.Active:
                        SignInManager.SignIn(oUser, false, false);
                        IList <string> roleList = AccountRoleController.GetUserRoles(oUser.Id);
                        foreach (string role in roleList)
                        {
                            UserManager.AddToRole(oUser.Id, role);
                        }

                        //if no return url provided then redirect page based on role
                        if (string.IsNullOrEmpty(returnUrl))
                        {
                            if (roleList.IndexOf("Administrator") >= 0)
                            {
                                return(RedirectToAction("Index", "Admin"));
                            }
                            else
                            {
                                return(RedirectToAction("Index", "student"));
                            }
                        }
                        return(RedirectToLocal(returnUrl));

                    case EnumAccountStatus.Banned:
                        ModelState.AddModelError("", "Error: User account has been banned.");
                        break;

                    case EnumAccountStatus.LockedOut:
                        ModelState.AddModelError("", "Error: User account has been locked out due to multiple login tries.");
                        break;
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Error: Invalid login details.");
                }
            }
            return(View(objLogin));
        }
Exemplo n.º 2
0
        public ActionResult ViewStudents()
        {
            ViewBag.Message = "Student List";

            //list of datalibrary model
            var data = AccountRoleController.GetAccountByRole(2);
            //ui model
            List <StudentModel> students = new List <StudentModel>();

            //convert datalibrary model to ui model
            foreach (var row in data)
            {
                students.Add(new StudentModel
                {
                    UserName = row.UserName,
                    Email    = row.Email
                });
            }

            return(View(students));
        }