public JsonResult UpdateUser(int ID, string Name, string Username, string Email, string Password, string RepeatPassword,
                                     int module1, int module2, int module3, int module4, int module5, int module8, int module9, int module6, string rights,
                                     string locRights1, string locRights2, string locRights3)
        {
            if (db.SYS_USER.Where(a => a.ID != ID).Where(a => a.Username == Username).Count() > 0)
            {
                return(Json(new Result()
                {
                    CodeError = 2,
                    Data = "Người dùng với tên đăng nhập <strong style='color:black; '>" + Username + "</strong> đã tồn tại!"
                }, JsonRequestBehavior.AllowGet));
            }
            if (!String.IsNullOrEmpty(Email) && db.SYS_USER_GOOGLE_ACCOUNT.Where(a => a.ID != ID).Where(a => a.Email == Email).Count() > 0)
            {
                return(Json(new Result()
                {
                    CodeError = 2,
                    Data = "Người dùng với email <strong style='color:black; '>" + Email + "</strong> đã tồn tại!"
                }, JsonRequestBehavior.AllowGet));
            }
            string InvalidFields = "";

            if (String.IsNullOrEmpty(Name))
            {
                InvalidFields += "txtName-";
            }
            //if (String.IsNullOrEmpty(Email))
            //{
            //    InvalidFields += "txtEmail-";
            //}
            if (String.IsNullOrEmpty(Username))
            {
                InvalidFields += "txtUsername-";
            }
            if (!String.IsNullOrEmpty(Password) && Password != RepeatPassword)
            {
                InvalidFields += "txtRepeatPassword-";
            }
            if (InvalidFields != "")
            {
                return(Json(new Result()
                {
                    CodeError = 1,
                    Data = InvalidFields
                }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                string passEncrypt = "";
                if (!String.IsNullOrEmpty(Password))
                {
                    passEncrypt = new XCryptEngine(XCryptEngine.AlgorithmType.MD5).Encrypt(Password, "pl");
                }
                var intOutVal = new ObjectParameter("intOutVal", typeof(int));
                db.FPT_SP_ADMIN_UPDATE_USER(ID, 0, Name, Username, passEncrypt, module1, module2, module3, module4, module5, module8, module9, module6,
                                            Int32.Parse(Session["UserID"].ToString()), intOutVal);
                var rightsSplit = rights.Split(',');
                foreach (var r in rightsSplit)
                {
                    if (!String.IsNullOrEmpty(r))
                    {
                        db.FPT_SP_ADMIN_GRANT_RIGHTS(ID, Int32.Parse(r));
                    }
                }
                var locRights1Split = locRights1.Split(',');
                foreach (var r in locRights1Split)
                {
                    if (!String.IsNullOrEmpty(r))
                    {
                        db.SP_ADMIN_GRANT_LOCATIONS(ID, Int32.Parse(r), 1);
                    }
                }
                var locRights2Split = locRights2.Split(',');
                foreach (var r in locRights2Split)
                {
                    if (!String.IsNullOrEmpty(r))
                    {
                        db.SP_ADMIN_GRANT_LOCATIONS(ID, Int32.Parse(r), 2);
                    }
                }
                var locRights3Split = locRights3.Split(',');
                foreach (var r in locRights3Split)
                {
                    if (!String.IsNullOrEmpty(r))
                    {
                        db.SP_ADMIN_GRANT_LOCATIONS(ID, Int32.Parse(r), 3);
                    }
                }
                if (!String.IsNullOrEmpty(Email))
                {
                    if (db.SYS_USER_GOOGLE_ACCOUNT.Where(a => a.ID == ID).Count() > 0)
                    {
                        var userGoogleAccountDel = db.SYS_USER_GOOGLE_ACCOUNT.Where(a => a.ID == ID).First();
                        db.Entry(userGoogleAccountDel).State = EntityState.Deleted;

                        var userGoogleAccount = db.SYS_USER_GOOGLE_ACCOUNT.Create();
                        userGoogleAccount.ID    = ID;
                        userGoogleAccount.Email = Email;
                        db.SYS_USER_GOOGLE_ACCOUNT.Add(userGoogleAccount);
                    }
                    else
                    {
                        var userGoogleAccount = db.SYS_USER_GOOGLE_ACCOUNT.Create();
                        userGoogleAccount.ID    = ID;
                        userGoogleAccount.Email = Email;
                        db.SYS_USER_GOOGLE_ACCOUNT.Add(userGoogleAccount);
                    }
                }

                db.SaveChanges();
                return(Json(new Result()
                {
                    CodeError = 0,
                    Data = "Tài khoản <strong style='color:black;'>" + Username + " </strong> đã được cập nhật thành công cho <strong style='color:black;'>" + Name + "</strong>"
                }, JsonRequestBehavior.AllowGet));
            }
        }