private void btnGuardar_Click(object sender, EventArgs e) { //Controlar Turno nuevo y Turno modificado Turno turno = new Turno(); turno.Comentario = txtComentario.Text.Trim(); turno.FechaAlta = DateTime.Now; turno.FechaTurno = dtpFecha.Value; turno.HoraFin = dtpHoraHasta.Value; turno.HoraInicio = dtpHoraDesde.Value; turno.EstadoTurno = new EstadoTurno(); turno.EstadoTurno.IdEstado = 4; turno.EstadoTurno.Nombre = "Generado"; turno.Paciente = (Paciente)cmbPaciente.SelectedItem; turno.Profesional = (Profesional)cmbProfesional.SelectedItem; List <Practica> practicas = new List <Practica>(); foreach (Practica practica in lstPracticas.Items) { practicas.Add(practica); } turno.Practicas = practicas; GestorDeTurnos gestorDeTurnos = new GestorDeTurnos(); int idTurno = gestorDeTurnos.tomarTurno(turno); if (idTurno > 0) { turno.IdTurno = idTurno; bgwDibujadorDeNuevoTurno = new BackgroundWorker(); bgwDibujadorDeNuevoTurno.DoWork += new DoWorkEventHandler(bgwDibujadorDeTurnoNuevo_DoWork); bgwDibujadorDeNuevoTurno.ProgressChanged += new ProgressChangedEventHandler(bgwDibujadorDeTurnoNuevo_ProgressChanged); bgwDibujadorDeNuevoTurno.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bgwDibujadorDeTurnoNuevo_RunWorkerCompleted); bgwDibujadorDeNuevoTurno.RunWorkerAsync(turno); } else { MessageBox.Show("No se ha registrado el turno", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }