private void ClickRegisterUserCommandHandler(object param)
        {
            try
            {
                if ((param is object[]) == false) return;
                var parameters = param as object[];
                if (parameters.Length != 5) return;

                var currentUser = parameters[0] as Equipment.UserInfo;
                var permission = (Equipment.UserPermissionTypes)parameters[1];
                var userName = parameters[2] as string;
                if (string.IsNullOrEmpty(userName) == true)
                {
                    string msg = Utility.UtilityClass.GetStringResource(this, "UserSelectWindow.PleaseEnterUserName", "Please enter a user name");
                    Manager.MessageWindowManager.Instance.Show(EquipmentInstance, "UserSelectet", msg, false);
                    return;
                }

                if (ExistUser(userName) == true)
                {
                    string msg = Utility.UtilityClass.GetStringResource(this, "UserSelectWindow.UsernameAlreadyExists", "Username already exists.");
                    Manager.MessageWindowManager.Instance.Show(EquipmentInstance, "UserSelectet", msg, false);
                    return;
                }

                var password = (parameters[3] as PasswordBox).Password;
                var confirmNewPassword = (parameters[4] as PasswordBox).Password;

                if (string.IsNullOrEmpty(password) == true)
                    password = string.Empty;

                if (string.IsNullOrEmpty(confirmNewPassword) == true)
                    confirmNewPassword = string.Empty;

                if (password != confirmNewPassword)
                {
                    string msg = Utility.UtilityClass.GetStringResource(this, "UserSelectWindow.NewPasswordDoesNotMatchNewConfirmPassword", "New password does not match new confirm password.");
                    Manager.MessageWindowManager.Instance.Show(EquipmentInstance, "UserSelectet", msg, false);
                    return;
                }

                if (currentUser == null || currentUser.Permission < permission)
                {
                    string msg = Utility.UtilityClass.GetStringResource(this, "UserSelectWindow.YourPermissionsDoNotAllowYouRegisterTheUser", "Your permissions do not allow you register the user");
                    Manager.MessageWindowManager.Instance.Show(EquipmentInstance, "UserSelectet", msg, false);
                    return;
                }

                Equipment.UserInfo user = new Equipment.UserInfo();
                user.Name = userName;
                user.Permission = permission;
                user.Password = password;
                EquipmentInstance.Config.UserList.Add(user);

                Manager.LogManager.Instance.WriteTraceLog(EquipmentInstance,
                    string.Format("REGISTER USER ID={0}, PERMISSION={1}. BY USER ID={2}, PERMISSION={3}",
                        user.Name, user.Permission, currentUser.Name, currentUser.Permission));
            }
            catch (Exception e)
            {
                Manager.MessageWindowManager.Instance.Show(EquipmentInstance, "UserSelectet",
                    string.Format("Do not register user. {0}", e.ToString()), false);
            }
        }
        private void ClickLoginCommandHandler(object param)
        {
            try
            {
                if ((param is object[]) == false) return;
                var parameters = param as object[];
                if (parameters.Length != 2) return;

                if (parameters[0] == null)
                {
                    string msg = Utility.UtilityClass.GetStringResource(this, "UserSelectWindow.PleaseSelectUser", "Please select user.");
                    Manager.MessageWindowManager.Instance.Show(EquipmentInstance, "UserSelectet", msg, false);
                    return;
                }

                var user = parameters[0] as Equipment.UserInfo;
                string password = (parameters[1] as PasswordBox).Password;
                if (string.IsNullOrEmpty(password)) password = string.Empty;
                if (string.IsNullOrEmpty(user.Password)) user.Password = string.Empty;

                if (user.Password != password)
                {
                    string msg = Utility.UtilityClass.GetStringResource(this, "UserSelectWindow.ThePasswordDoesNotMatch", "The password does not match");
                    Manager.MessageWindowManager.Instance.Show(EquipmentInstance, "UserSelectet", msg, false);
                    return;
                }

                Manager.LogManager.Instance.WriteTraceLog(EquipmentInstance,
                    string.Format("LOGIN : ID={0}, PERMISSION={1}", user.Name, user.Permission));
                SelectedUser = user;
                DialogResult = true;
                Close();
            }
            catch (Exception e)
            {
                Manager.MessageWindowManager.Instance.Show(EquipmentInstance, "UserSelectet",
                    string.Format("Do not login. {0}", e.ToString()), false);
            }
        }