public ActionResult Login(Employee_Login objUser)
        {
            /*******************************************************************
            *  Author      : Gopi
            *  Date        : 04/07/2017
            *  Description : Validating User login
            *******************************************************************/
            var res = string.Empty;

            using (fze = new FiestaZohoDatabaseEntities())
            {
                objUser.password = Convert.ToBase64String(
                    System.Security.Cryptography.SHA256.Create()
                    .ComputeHash(Encoding.UTF8.GetBytes(objUser.password)));
                var usr = fze.ValidateLogin(objUser.emailEmployee, objUser.password).ToList();

                if (usr != null && usr.Count() > 0)
                {
                    Session["UserID"]    = usr[0].EmpId.ToString();
                    Session["UserName"]  = usr[0].EmployeeName.ToString();
                    Session["UserEmail"] = usr[0].EmailAddress.ToString();
                    Session["UserRole"]  = usr[0].RoleId;
                }
                else
                {
                    res = "Email or Password is wrong.";
                }
            }
            //  }
            return(Json(res, JsonRequestBehavior.AllowGet));
        }
        public ActionResult Logine(Employee_Login employee_Login)
        {
            ViewBag.msg1 = employee_Login.password;
            ScryptEncoder encoder = new ScryptEncoder();

            if (String.IsNullOrEmpty(employee_Login.id) || String.IsNullOrEmpty(employee_Login.password))
            {
                return(View());
            }
            else if (db.Employee_Login.All(x => x.id != employee_Login.id))
            {
                ViewBag.Notification1 = "This employee id " + employee_Login.id + " does not exists";
                return(View());
            }
            var  valid      = (from c in db.Employee_Login where c.id.Equals(employee_Login.id) select c).SingleOrDefault();
            var  checkLogin = db.Employee_Login.Where(x => x.id.Equals(employee_Login.id)).FirstOrDefault();
            bool isvalid    = encoder.Compare(employee_Login.password, valid.password);

            if (checkLogin != null && isvalid == true)
            {
                Session["IdUsSS1"] = employee_Login.id.ToString();
                //TempData["mydata"] =Session["IdUsSS1"];
                return(RedirectToAction("emphome", "Home"));
            }
            else if (employee_Login.password.Length < 6)
            {
                return(View());
            }
            else
            {
                ViewBag.Notification1 = "Incorrect Id or Password";
            }
            return(View());
        }
        public ActionResult Signupe(Employee_Login employee_Login, Employee employee)
        {
            ViewBag.msg1 = employee_Login.password;
            ViewBag.msg2 = employee_Login.repassword;
            ScryptEncoder encoder = new ScryptEncoder();

            if (String.IsNullOrEmpty(employee_Login.id) || String.IsNullOrEmpty(employee_Login.password) || String.IsNullOrEmpty(employee_Login.repassword))
            {
                return(View());
            }
            else if (employee_Login.password != employee_Login.repassword)
            {
                //ViewBag.Notification = "Password and Repassword does n't match";
                return(View());
            }
            else if (employee_Login.password.ToString().Length < 6)
            {
                //ViewBag.Notification = "Password should be minimum 8 characters and less than 15 characters";
                return(View());
            }
            else if (db.Employee_Login.Any(x => x.id == employee_Login.id))
            {
                ViewBag.Notification = "This employee with id " + employee_Login.id + " already registered!";
                return(View());
            }
            else if (db.Employees.All(x => x.id.ToString() != employee_Login.id))
            {
                ViewBag.Notification = "Registration with employee id " + employee_Login.id + " is not allowed. Please contact admin!";
                return(View());
            }
            else
            {
                String k1 = employee_Login.password;
                String k2 = encoder.Encode(k1);
                db.Employee_Login.Add(new Employee_Login()
                {
                    id         = employee_Login.id,
                    password   = k2,
                    repassword = k2
                });
                db.SaveChanges();
                //ViewBag.Notification1 = "The account has been successfully registered!Please login to continue";
                //Session["IdUsSS1"] = employee_Login.id.ToString();
                TempData["message"] = "Employee with id " + employee_Login.id + " has been created successfully!";
                return(RedirectToAction("Signupe", "Home"));
                //return View();
            }
        }
        public IActionResult Registration(Login ob)
        {
            Employee_Login obj = new Employee_Login
            {
                Id       = ob.Id,
                Password = ob.Password
            };

            if (ModelState.IsValid)
            {
                _db.Employees_Login.Add(obj);
                _db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(ob));
        }
        public async Task <IActionResult> IndexAsync(Login ob)
        {
            if (ModelState.IsValid)
            {
                Ad_Login obj1 = _db.Admins_Login.Find(ob.Id);
                if (obj1 != null)
                {
                    var claims = new List <Claim>
                    {
                        new Claim(ClaimTypes.NameIdentifier, obj1.Id.ToString()),
                        new Claim(ClaimTypes.Role, "Admin"),
                    };

                    var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
                    //var authProperties = new AuthenticationProperties();
                    await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme,
                                                  new ClaimsPrincipal(claimsIdentity));

                    return(RedirectToAction("AllEmployees"));
                }
                Employee_Login obj2 = _db.Employees_Login.Find(ob.Id);
                if (obj2 != null)
                {
                    var claims = new List <Claim>
                    {
                        new Claim(ClaimTypes.NameIdentifier, obj2.Id.ToString()),
                        new Claim(ClaimTypes.Role, "Employee"),
                    };

                    var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
                    var authProperties = new AuthenticationProperties();
                    await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme,
                                                  new ClaimsPrincipal(claimsIdentity),
                                                  authProperties);

                    if ((_db.Employees.FirstOrDefault(u => u.EmployeeId == ob.Id)) != null)
                    {
                        return(RedirectToAction("Details2", new { id = ob.Id }));
                    }
                    return(RedirectToAction("Create"));
                }
                return(NotFound());
            }
            return(View(ob));
        }