public ActionResult Login(LoginVM loginVM)
        {
            if (ModelState.IsValid)
            {
                //encrypt password when is complete
                string pass = PassCrypto.base64Encode(loginVM.PasSword);
                if (_employeeSevice.CheckCredentials(loginVM.UserName, pass))
                {
                    Employee currentUser = _employeeSevice.FindByUserName(loginVM.UserName);
                    if (currentUser.Password == pass)
                    {
                    }

                    string cookie = currentUser.UserName;
                    int    idm    = currentUser.ID;
                    TempData["idm"]  = idm;
                    Session["admin"] = currentUser.UserName;
                    FormsAuthentication.SetAuthCookie(cookie, true);
                    TempData["name1"] = currentUser.Name;
                    //TempData["mail"] = currentUser.Email;
                    return(Redirect("/CRMarea/Area/Index"));
                }
                else
                {
                    ViewData["error"] = "Warning!";
                    return(View());
                }
            }
            else
            {
                TempData["class"] = "custom-show";
                return(View());
            }
        }
        //Some places have been cut to draw attention to the algorithm!!!

        //is Here.
        public override int SaveChanges()
        {
            var modifiedEntries = ChangeTracker.Entries().Where(x => x.State == EntityState.Modified || x.State == EntityState.Added).ToList();

            string   identity     = WindowsIdentity.GetCurrent().Name;
            string   computerName = Environment.MachineName;
            DateTime dateTime     = DateTime.Now;

            foreach (var item in modifiedEntries)
            {
                BaseEntity baseEntity = item.Entity as BaseEntity;

                if (item != null)
                {
                    if (item.State == EntityState.Added)
                    {
                        baseEntity.CreatedUserName = identity;
                        baseEntity.CreatedCompName = computerName;
                        baseEntity.CreateDate      = dateTime;
                    }

                    else if (item.State == EntityState.Modified)
                    {
                        baseEntity.UpdatedUserName = identity;
                        baseEntity.UpdateCompnName = computerName;
                        baseEntity.UpdateDate      = dateTime;
                    }
                }
            }
            foreach (var item in modifiedEntries)
            {
                Employee employee = item.Entity as Employee;
                if (item != null)
                {
                    if (item.State == EntityState.Added)
                    {
                        //Call Crypto Method when entity added.
                        employee.Password = PassCrypto.base64Encode(employee.Password);
                    }
                    else if (item.State == EntityState.Modified)
                    {
                        //Call Crypto Method when entity modified.
                        employee.Password = PassCrypto.base64Encode(employee.Password);
                    }
                }
            }

            return(base.SaveChanges());
        }