private void btnGuardar_Click(object sender, EventArgs e)
 {
     if (txtCedula.Text != "")
     {
         if (txtCedulaRecepcionista.Text != "")
         {
             if (txtDescripcion.Text != "")
             {
                 if (cbxEspecialidad.Text != "")
                 {
                     if (cbxDoctor.Text != "")
                     {
                         if (dtpFechaCita.Value > DateTime.Today)
                         {
                             DialogResult resultado = MessageBox.Show("¿Desea guardar el Registro?", "IESS", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                             if (resultado == DialogResult.Yes)
                             {
                                 try
                                 {
                                     citaMedica              = new CitaMedica();
                                     citaMedica.NumeroCita   = Convert.ToInt32(txtNumeroCita.Text);
                                     citaMedica.Paciente     = paciente;
                                     citaMedica.FechaCita    = dtpFechaCita.Value;
                                     citaMedica.Descripcion  = txtDescripcion.Text;
                                     especialidad            = especialidades.SingleOrDefault(aux => aux.NombreEspecialidad == cbxEspecialidad.Text);
                                     citaMedica.Especialidad = especialidad;
                                     doctor            = doctores.SingleOrDefault(aux => aux.ApellidoPaterno == cbxDoctor.Text);
                                     citaMedica.Doctor = doctor;
                                     citaMedica.Estado = "Activa";
                                     if (editar)
                                     {
                                         recepcionista            = new Recepcionista();
                                         recepcionista.Cedula     = txtCedulaRecepcionista.Text;
                                         citaMedica.Recepcionista = recepcionista;
                                         paciente            = new Paciente();
                                         paciente.Cedula     = txtCedula.Text;
                                         citaMedica.Paciente = paciente;
                                         if (administrador.modificarCitaMedica(citaMedica))
                                         {
                                             MessageBox.Show("Cita modificada con éxito", "IESS", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                             this.Close();
                                         }
                                         else
                                         {
                                             MessageBox.Show("La Cita ya existe", "IESS", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                                         }
                                     }
                                     else
                                     {
                                         if (administrador.validarFechaCita(dtpFechaCita.Value, doctor.Cedula))
                                         {
                                             citaMedica.Recepcionista = recepcionista;
                                             if (administrador.ingresarCitaMedica(citaMedica))
                                             {
                                                 MessageBox.Show("Cita ingresada con éxito", "IESS", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                                 limpiarTextos();
                                             }
                                             else
                                             {
                                                 MessageBox.Show("La Cita ya se encuentra registrada", "IESS", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                                             }
                                         }
                                         else
                                         {
                                             MessageBox.Show("La fecha de la cita coincide con otra asignada", "IESS", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                                         }
                                     }
                                 }
                                 catch
                                 {
                                     MessageBox.Show("Error de ingreso de datos", "IESS", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                 }
                             }
                         }
                         else
                         {
                             MessageBox.Show("La fecha ingresada no puede ser menor a la fecha actual", "IESS", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                         }
                     }
                     else
                     {
                         MessageBox.Show("Seleccione el Médico para la especialidad", "IESS", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                     }
                 }
                 else
                 {
                     MessageBox.Show("Seleccione la especialidad de la cita", "IESS", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                 }
             }
             else
             {
                 MessageBox.Show("Ingrese el motivo de la cita", "IESS", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
             }
         }
         else
         {
             MessageBox.Show("Ingrese la cédula del recepcionista", "IESS", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
         }
     }
     else
     {
         MessageBox.Show("Ingrese la cédula del paciente", "IESS", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
     }
 }
        public void llenarDataGridView()
        {
            DataTable tbl = new DataTable();

            tbl.Columns.Add("Cédula");
            tbl.Columns.Add("Nombres");
            tbl.Columns.Add("Apellido Paterno");
            tbl.Columns.Add("Apellido Materno");
            tbl.Columns.Add("Fecha de Nacimiento");
            tbl.Columns.Add("Edad");
            tbl.Columns.Add("Sexo");
            tbl.Columns.Add("Correo Electrónico");
            tbl.Columns.Add("Provincia");
            tbl.Columns.Add("Ciudad");
            tbl.Columns.Add("Dirección");
            tbl.Columns.Add("Teléfono");
            tbl.Columns.Add("Usuario");
            tbl.Columns.Add("Contraseñia");
            tbl.Columns.Add("Especialidad");
            SqlConnection conexion = DataBase.obtenerConexion();
            string        consulta = "SELECT * FROM tblDoctor LEFT JOIN tblEspecialidad ON tblDoctor.codigoEspecialidad = tblEspecialidad.codigoEspecialidad";
            SqlCommand    comando  = new SqlCommand(consulta, conexion);
            SqlDataReader reader   = comando.ExecuteReader();

            doctor       = new Doctor();
            especialidad = new Especialidad();
            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    doctor.Cedula          = reader.GetString(0);
                    doctor.Nombres         = reader.GetString(1);
                    doctor.ApellidoPaterno = reader.GetString(2);
                    doctor.ApellidoMaterno = reader.GetString(3);
                    doctor.setFechaNacimiento(reader.GetDateTime(4));
                    doctor.Sexo = reader.GetString(5);
                    doctor.CorreoElectronico        = reader.GetString(6);
                    doctor.Provincia                = reader.GetString(7);
                    doctor.Canton                   = reader.GetString(8);
                    doctor.Direccion                = reader.GetString(9);
                    doctor.Telefono                 = reader.GetString(10);
                    doctor.UsuarioDoctor            = reader.GetString(11);
                    doctor.ContraseniaDoctor        = reader.GetString(12);
                    especialidad.IdEspecialidad     = reader.GetInt32(13);
                    especialidad.NombreEspecialidad = reader.GetString(15);
                    especialidad.Descripcion        = reader.GetString(16);
                    doctor.Especialidad             = especialidad;
                    doctor.calcularEdad();
                    doctores.Add(doctor);
                    doctor       = new Doctor();
                    especialidad = new Especialidad();
                }
                reader.Close();
                DataBase.cerrarConexion(conexion);
                foreach (var aux in doctores)
                {
                    tbl.Rows.Add(aux.Cedula, aux.Nombres, aux.ApellidoPaterno, aux.ApellidoMaterno, aux.getFechaNacimiento(), aux.Edad, aux.Sexo, aux.CorreoElectronico, aux.Provincia, aux.Canton, aux.Direccion, aux.Telefono, aux.UsuarioDoctor, aux.ContraseniaDoctor, aux.Especialidad.NombreEspecialidad);
                }
            }
            dgvDoctores.DataSource = tbl;
        }
        public void llenarDataGridView()
        {
            SqlConnection conexion = DataBase.obtenerConexion();
            string        consulta = "SELECT idCita, fechaCita, tblCitaMedica.cedulaPaciente, tblPaciente.nombres, tblPaciente.apellidoPaterno, nombreEspecialidad, " +
                                     "tblcitaMedica.descripcion, tblDoctor.cedulaDoctor, tblDoctor.nombres, tblDoctor.apellidoPaterno, tblCitaMedica.cedulaRecepcionista, estado FROM tblCitaMedica INNER JOIN tblPaciente " +
                                     "ON tblCitaMedica.cedulaPaciente = tblPaciente.cedulaPaciente INNER JOIN tblEspecialidad ON tblCitaMedica.codigoEspecialidad = tblEspecialidad.codigoEspecialidad " +
                                     "INNER JOIN tblDoctor ON tblCitaMedica.cedulaDoctor = tblDoctor.cedulaDoctor INNER JOIN tblRecepcionista ON tblCitaMedica.cedulaRecepcionista = tblRecepcionista.cedulaRecepcionista";
            SqlCommand    comando = new SqlCommand(consulta, conexion);
            SqlDataReader reader  = comando.ExecuteReader();
            DataTable     tbl     = new DataTable();

            tbl.Columns.Add("Número de Cita");
            tbl.Columns.Add("Fecha de la Cita");
            tbl.Columns.Add("Cédula del Paciente");
            tbl.Columns.Add("Nombres");
            tbl.Columns.Add("Apellido Paterno");
            tbl.Columns.Add("Especialidad");
            tbl.Columns.Add("Motivo de la Cita");
            tbl.Columns.Add("Nombre del Doctor");
            tbl.Columns.Add("Apellido");
            tbl.Columns.Add("Estado");
            especialidad  = new Especialidad();
            doctor        = new Doctor();
            paciente      = new Paciente();
            citaMedica    = new CitaMedica();
            especialidad  = new Especialidad();
            recepcionista = new Recepcionista();
            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    citaMedica.NumeroCita           = reader.GetInt32(0);
                    citaMedica.FechaCita            = reader.GetDateTime(1);
                    paciente.Cedula                 = reader.GetString(2);
                    paciente.Nombres                = reader.GetString(3);
                    paciente.ApellidoPaterno        = reader.GetString(4);
                    citaMedica.Paciente             = paciente;
                    especialidad.NombreEspecialidad = reader.GetString(5);
                    citaMedica.Especialidad         = especialidad;
                    citaMedica.Descripcion          = reader.GetString(6);
                    doctor.Cedula            = reader.GetString(7);
                    doctor.Nombres           = reader.GetString(8);
                    doctor.ApellidoPaterno   = reader.GetString(9);
                    citaMedica.Doctor        = doctor;
                    recepcionista.Cedula     = reader.GetString(10);
                    citaMedica.Recepcionista = recepcionista;
                    citaMedica.Estado        = reader.GetString(11);
                    citasMedicas.Add(citaMedica);
                    especialidad  = new Especialidad();
                    doctor        = new Doctor();
                    paciente      = new Paciente();
                    citaMedica    = new CitaMedica();
                    especialidad  = new Especialidad();
                    recepcionista = new Recepcionista();
                }
                reader.Close();
                DataBase.cerrarConexion(conexion);
                foreach (var aux in citasMedicas)
                {
                    tbl.Rows.Add(aux.NumeroCita, aux.FechaCita, aux.Paciente.Cedula, aux.Paciente.Nombres, aux.Paciente.ApellidoPaterno, aux.Especialidad.NombreEspecialidad, aux.Descripcion, aux.Doctor.Nombres, aux.Doctor.ApellidoPaterno, aux.Estado);
                }
            }
            dgvCitas.DataSource = tbl;
        }