private void EnableOrDisableEmployee()
        {
            var message = new StringBuilder();

            message.Append(
                $"¿Esta seguro de {(employee.Credentials.IsActive ? "inhabilitar" : "habilitar")} el usuario {employee}?");
            var result = MessageBox.Show(message.ToString(), "Atención", MessageBoxButtons.YesNo,
                                         MessageBoxIcon.Question);

            if (result == DialogResult.No)
            {
                return;
            }
            var oldStatus = employee.Credentials.IsActive;

            try{
                var usecase = EmployeeUseCase.CreateUseCase();
                usecase.EnableDisableUser(employee.Credentials.UserId, employee.Credentials.IsActive);
                message.Clear();
                message.Append(
                    $"El usuario {employee} fue {(employee.Credentials.IsActive ? "inhabilitado" : "habilitado")} correctamente, los usuarios administradores pueden volver a rebocar esta acción.");
                MessageBox.Show(message.ToString(), "Atención", MessageBoxButtons.OK, MessageBoxIcon.Information);
                IsSaved = true;
                Close();
            }
            catch (Exception ex) {
                MessageBox.Show(ex.Message, "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                employee.Credentials.IsActive = oldStatus;
            }

            ChangeTextStatusUser();
        }
        private bool SaveUserData()
        {
            bool result;

            PutUserDataIntoObject();
            try{
                var usecase = EmployeeUseCase.CreateUseCase();
                if (IsNewRecord)
                {
                    usecase.NewEmployee(employee);
                    MessageBox.Show("El usuario " + employee + " ha sido almacenado correctamente.", "Atención",
                                    MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    usecase.EditEmployee(employee, true, passwordChanged);
                    MessageBox.Show("El usuario " + employee + " ha sido actualizado correctamente.", "Atención",
                                    MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

                result = true;
            }
            catch (Exception ex) {
                MessageBox.Show(ex.Message, "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                result = false;
            }

            return(result);
        }
        private void LoadUsers(int filterType)
        {
            try{
                var useCase = EmployeeUseCase.CreateUseCase();
                var data    = new DataTable();
                ListDataGridView.DataSource = null;
                switch (filterType)
                {
                case 0:
                    data = useCase.FindAll();
                    break;

                case 1:
                    data = useCase.FindUsersByUsername(ListFilterTextBox.Text);
                    break;

                case 2:
                    data = useCase.FindActiveUsers();
                    break;

                case 3:
                    data = useCase.FindInactiveUsers();
                    break;
                }

                ListDataGridView.DataSource = data;
                HideColumns();
                DisplayCounts();
            }
            catch (Exception ex) {
                MessageBox.Show(ex.Message, "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
        private void ValidateUsername()
        {
            if (string.IsNullOrEmpty(employee.Credentials.Username))
            {
                ErrorMessages.Add("El campo nombre de usuario no puede quedar vacío.");
                return;
            }

            if (employee.Credentials.Username.Length < UsernameLength)
            {
                ErrorMessages.Add(
                    $"El largo del nombre de usuario no puede ser inferior a {UsernameLength} caracteres");
                return;
            }

            if (EditMode)
            {
                return;
            }
            var useCase = EmployeeUseCase.CreateUseCase();
            var emp     = useCase.FindUserByUsername(employee.Credentials.Username);

            if (emp != null)
            {
                ErrorMessages.Add("El username ingresado no esta disponible.");
            }
        }
 private void LoadUserInfo()
 {
     try{
         var useCase = EmployeeUseCase.CreateUseCase();
         employee = useCase.FindUserById(IdSelected);
     }
     catch (Exception ex) {
         MessageBox.Show(ex.Message, "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
         Close();
     }
 }
 private async void ExecuteLookupCommand()
 {
     EmployeeUseCase.TargetId = int.Parse(EmployeeId);
     await EmployeeUseCase.LookupAsync();
 }