private void Contabilidad_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (e.CloseReason == CloseReason.UserClosing && !showLogin)
            {
                DialogResult closeIt = MessageBox.Show(
                    "¿Está seguro que desea salir?",
                    "Salir",
                    MessageBoxButtons.YesNo,
                    MessageBoxIcon.Question
                    );

                if (closeIt == DialogResult.Yes)
                {
                    System.Windows.Forms.Application.Exit();
                }
                else
                {
                    e.Cancel = true;
                }
            }
            else
            {
                instance  = null;
                showLogin = false;
            }
        }
        public static Contabilidad getInstance()
        {
            if (instance == null)
            {
                instance = new Contabilidad();
            }

            return(instance);
        }
        private void button1_Click(object sender, EventArgs e)
        {
            String password = txtPassword.Text;

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

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

                password = sb.ToString();
            }

            var query = from em in entities.users
                        where (
                em.username.Equals(txtUsername.Text) &&
                em.password.Equals(password)
                )
                        select em;

            if (query.Count() == 1)
            {
                users        user     = query.First();
                Contabilidad instance = Contabilidad.getInstance();
                instance.setUser(new User
                {
                    id         = user.id,
                    name       = user.name,
                    permission = user.permission
                });
                instance.Show();

                resetFields();
                this.Hide();
            }
            else
            {
                MessageBox.Show(
                    "Usuario y/o Contraseña incorrecta",
                    "Error",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error
                    );
            }
        }
Beispiel #4
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("");
                            }
                        }
                    }
                }
            }
        }