public ActionResult Edit([Bind(Include = "AccessControlID,MachineID,PasswordEntry,RecordCreated,CreatedBy,LastUpdated,LastUpdatedBy,ViewedState,IsActive")] AccessControl accessControl)
        {
            AccessControl accessControlCurrent = _AccessControlService.GetByIdNotTracked(accessControl.AccessControlID);

            if (ModelState.IsValid)
            {
                string EncryptPassword = accessControlCurrent.PasswordEntry.Equals(accessControl.PasswordEntry) ? accessControl.PasswordEntry : Encryption.Encrypt.EncryptString(accessControl.PasswordEntry, WebConfigurationManager.AppSettings["MonkeyString"]);
                string ViewedState     = string.Empty;
                ViewedState = accessControlCurrent.IsActive & accessControl.IsActive == false ? "Disabled" : "Modified";
                ViewedState = !accessControlCurrent.PasswordEntry.Equals(accessControl.PasswordEntry) ? "Password Reset" : ViewedState;
                accessControl.ViewedState   = ViewedState;
                accessControl.LastUpdated   = System.DateTime.Now;
                accessControl.LastUpdatedBy = User.Identity.Name;
                //if (!accessControlCurrent.PasswordEntry.Equals(accessControl.PasswordEntry))
                //{
                accessControl.PasswordEntry = EncryptPassword;
                // }
                _AccessControlService.Update(accessControl);

                switch (ViewedState)
                {
                case "Password Reset":
                    _AccessControlTransaction.Create(_AccessControlTransaction.LogTransaction(accessControl.AccessControlID, Model.Common.Constants.TransactionConst.TransactionType.OldPassword, User.Identity.Name, _MachineService.GetById(accessControl.MachineID).MachineName, accessControlCurrent.PasswordEntry));
                    _AccessControlTransaction.Create(_AccessControlTransaction.LogTransaction(accessControl.AccessControlID, Model.Common.Constants.TransactionConst.TransactionType.PasswordReset, User.Identity.Name, _MachineService.GetById(accessControl.MachineID).MachineName, EncryptPassword));
                    break;

                case "Disabled":
                    _AccessControlTransaction.Create(_AccessControlTransaction.LogTransaction(accessControl.AccessControlID, Model.Common.Constants.TransactionConst.TransactionType.Disabled, User.Identity.Name, _MachineService.GetById(accessControl.MachineID).MachineName, EncryptPassword));
                    break;

                case "Modified":
                    _AccessControlTransaction.Create(_AccessControlTransaction.LogTransaction(accessControl.AccessControlID, Model.Common.Constants.TransactionConst.TransactionType.Modified, User.Identity.Name, _MachineService.GetById(accessControl.MachineID).MachineName, EncryptPassword));
                    break;
                }

                return(RedirectToAction("Index"));
            }
            ViewBag.MachineID = new SelectList(_MachineService.GetAllActive(), "MachineID", "MachineName", accessControl.MachineID);
            return(View(accessControl));
        }