Example #1
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            DataGridViewRow row = null;

            if (dgvUsers.SelectedRows.Count == 1)
            {
                row = dgvUsers.SelectedRows[0];
            }
            else if (dgvUsers.SelectedCells.Count == 1)
            {
                int i = dgvUsers.SelectedCells[0].RowIndex;
                row = dgvUsers.Rows[i];
            }
            else
            {
                MessageBox.Show(
                    "Debes seleccionar solo 1 usuario a eliminar",
                    "Información",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Information
                    );
            }

            if (row != null)
            {
                DialogResult deleteIt = MessageBox.Show(
                    "¿Estas seguro de eliminar este usuario?",
                    "Confirmar",
                    MessageBoxButtons.YesNoCancel,
                    MessageBoxIcon.Question
                    );

                if (deleteIt != DialogResult.Yes)
                {
                    return;
                }

                int   id        = Int32.Parse(row.Cells[0].Value.ToString());
                users localUser = (from em in entities.users
                                   where em.id == id
                                   select em).First();

                if (localUser == null)
                {
                    MessageBox.Show(
                        "El Usuario seleccionado no existe",
                        "Error",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Error
                        );
                    loadUsers("");
                }
                else
                {
                    int adminTotal = entities.users.Count(el => el.permission == 1);

                    if (adminTotal == 1 && localUser.permission == 1)
                    {
                        MessageBox.Show(
                            "No puedes eliminar al único administrador",
                            "Error",
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Error
                            );
                    }
                    else
                    {
                        bool delete       = true;
                        bool sameAsLogged = false;
                        if (localUser.id == Contabilidad.user.id)
                        {
                            delete       = false;
                            sameAsLogged = true;
                            DialogResult response = MessageBox.Show(
                                "Estas a punto de eliminar tu usuario. Esta acción te expulsará del sistema\n\n¿Deseas continuar?",
                                "Confirmar",
                                MessageBoxButtons.YesNoCancel,
                                MessageBoxIcon.Question
                                );

                            if (response == DialogResult.Yes)
                            {
                                delete = true;
                            }
                        }

                        if (delete)
                        {
                            entities.users.Remove(localUser);
                            entities.SaveChanges();

                            MessageBox.Show(
                                "¡Usuario eliminado con éxito!",
                                "Información",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Information
                                );

                            if (sameAsLogged)
                            {
                                IniciarSesion.getInstance().Show();
                                Contabilidad.showLogin = true;
                                Contabilidad.getInstance().Close();
                            }
                            else
                            {
                                loadUsers("");
                            }
                        }
                    }
                }
            }
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            users userLocal = null;

            if (user == null)
            {
                userLocal = new users
                {
                    name       = txtName.Text,
                    created_at = DateTime.Now,
                    permission = ((UserLevel)cbLevel.SelectedItem).value,
                    username   = txtUsername.Text
                };

                using (MD5 md5 = MD5.Create())
                {
                    byte[] hash = Encoding.ASCII.GetBytes(txtPassword.Text);
                    hash = md5.ComputeHash(hash);

                    StringBuilder sb = new StringBuilder();
                    foreach (var x in hash)
                    {
                        sb.Append(x.ToString("x2"));
                    }

                    userLocal.password = sb.ToString();
                }
            }
            else
            {
                user            = entities.users.First(el => el.id == user.id);
                user.name       = txtName.Text;
                user.updated_at = DateTime.Now;
                user.permission = ((UserLevel)cbLevel.SelectedItem).value;
                user.username   = txtUsername.Text;

                if (txtPassword.Modified)
                {
                    using (MD5 md5 = MD5.Create())
                    {
                        byte[] hash = Encoding.ASCII.GetBytes(txtPassword.Text);
                        hash = md5.ComputeHash(hash);

                        StringBuilder sb = new StringBuilder();
                        foreach (var x in hash)
                        {
                            sb.Append(x.ToString("x2"));
                        }

                        user.password = sb.ToString();
                    }
                }
            }

            String errors = "";

            if (userLocal == null)
            {
                errors = validate(user);
            }
            else
            {
                errors = validate(userLocal);
            }

            if (errors.Length > 0)
            {
                MessageBox.Show(
                    errors,
                    "Error",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error
                    );
            }
            else
            {
                if (userLocal != null)
                {
                    entities.users.Add(userLocal);
                }
                entities.SaveChanges();

                MessageBox.Show(
                    "¡Usuario guardado con éxito!",
                    "Información",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Information
                    );
                MnjUsers.getInstance().loadUsers("");
                this.Close();
            }
        }