Ejemplo n.º 1
0
        public ActionResult LogIn(LoginViewModel model, string returnUrl)
        {
            {
                //do lots of stuff
                //Create username remember cookie
                if (model.RememberMe)
                {
                    HttpCookie ckEmail = new HttpCookie("Email");
                    ckEmail.Expires = DateTime.Now.AddSeconds(500);
                    ckEmail.Value   = model.Email;
                    Response.Cookies.Add(ckEmail);
                }
            }
            NetUsers netuser = new NetUsers();

            try
            {
                if (model.Email != null && model.Password != null && model.RememberMe != null)
                {
                    using (SiplDatabaseEntities objSiplDatabaseEntities = new SiplDatabaseEntities())
                    {
                        //To Encode Password enter by User to match it with Database
                        var keyNew   = "Test";
                        var password = Helper.EncodePassword(model.Password, keyNew);
                        //To check Email & Password From DB
                        var obj = objSiplDatabaseEntities.NetUsers.Where
                                      (u => u.Email == model.Email && u.Password == password)
                                  .FirstOrDefault();

                        if (obj != null)
                        {
                            FormsAuthentication.SetAuthCookie(model.Email, true);
                            var isAdmin = (from role in objSiplDatabaseEntities.NetRoles
                                           join user in objSiplDatabaseEntities.UserRole
                                           on role.RoleId equals user.RoleId
                                           where user.UserId == obj.UserId
                                           select role.RoleName).FirstOrDefault();


                            if (isAdmin == "Admin")
                            {
                                Session["RoleId"]   = 3;
                                Session["RoleName"] = "Admin";
                                return(RedirectToAction("UserSearchView", "Admin/TeacherInfo"));
                            }
                            else if (isAdmin == "Teacher")
                            {
                                Session["RoleId"]   = 1;
                                Session["RoleName"] = "Teacher";
                                return(RedirectToAction("TeacherProfile", "Admin/TeacherInfo", new { id = obj.UserId }));
                            }
                            else if (isAdmin == "Student")
                            {
                                Session["RoleId"]   = 2;
                                Session["RoleName"] = "Student";
                                return(RedirectToAction("UserProfile", "Admin/TeacherInfo", new { id = obj.UserId }));
                            }
                            else
                            {
                                Session["Email"]    = null;
                                Session["Password"] = null;
                                return(View(model));
                            }
                        }
                        else
                        {
                            ModelState.AddModelError("Email", "Email and Password not found or matched");
                            return(View(model));
                        }
                    }
                }

                else
                {
                    return(View(model));
                }
                {
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception source: {0} Login Failed", ex.Message);
                return(View());
            }
        }