private void btnCancelar_Click(object sender, EventArgs e) { DateTime fecha = dateTimePicker1.Value; var sysDate = Convert.ToDateTime(ConfigurationManager.AppSettings["FechaSistema"]); if (fecha < sysDate) { MessageBox.Show(" La fecha debe ser mayor a la actual!"); } else { try { List <Turno> turnosDeLaFecha = _turnoManager.BuscarTurnosProfesional(_profesional, fecha); if (MessageBox.Show(string.Format("Usted tiene {0} turnos en la fecha\n Seguro que desea cancelar el dia?", turnosDeLaFecha.Count) , "Cancelar Dia", MessageBoxButtons.OKCancel) == DialogResult.OK) { _turnoManager.CancelarDiaProfesional(_profesional.UserID, fecha); MessageBox.Show("Dia Cancelado"); } } catch (System.Exception excep) { MessageBox.Show(excep.Message); } } }
private void GuardarAgenda(Agenda agenda) { TimeSpan diferenciaDias = agenda.FechaHasta - agenda.FechaDesde; progressBar1.Maximum = diferenciaDias.Days; progressBar1.Step = 1; progressBar1.Value = 0; for (int i = 0; i < diferenciaDias.Days; i++) { DateTime actual = agenda.FechaDesde.Date; actual = actual.AddDays(i); progressBar1.Value = i; List <Turno> turnosDeLaFecha = _turnoManager.BuscarTurnosProfesional(_profesional, actual); DateTime horain = new DateTime(); DateTime horaout = new DateTime(); switch (actual.DayOfWeek) { case DayOfWeek.Monday: horain = agenda.LunesIN; horaout = agenda.LunesOUT; break; case DayOfWeek.Tuesday: horain = agenda.MartesIN; horaout = agenda.MartesOUT; break; case DayOfWeek.Wednesday: horain = agenda.MiercolesIN; horaout = agenda.MiercolesOUT; break; case DayOfWeek.Thursday: horain = agenda.JuevesIN; horaout = agenda.JuevesOUT; break; case DayOfWeek.Friday: horain = agenda.ViernesIN; horaout = agenda.ViernesOUT; break; case DayOfWeek.Saturday: horain = agenda.SabadoIN; horaout = agenda.SabadoOUT; break; } actual = actual.AddHours(horain.Hour); if (horaout.TimeOfDay != horain.TimeOfDay) { List <Turno> turnosfueraDeRango = CalcularTurnosFueraDeRango(turnosDeLaFecha, horain, horaout); if (turnosfueraDeRango.Count > 0) { if (MessageBox.Show(string.Format("Se registro que en la fecha {0}, {1} turnos quedan fuera de rango, desea cancelarlos?", actual.Date.ToString(), turnosfueraDeRango.Count.ToString()), "Cancelar Turnos", MessageBoxButtons.OKCancel) == DialogResult.OK) { foreach (Turno turnoACancelar in turnosfueraDeRango) { _turnoManager.CancelarTurnoAgenda(turnoACancelar);//Cancela el turno, no elimina } } else { return; } } _agendaManager.LimpiarDia(_profesional, actual);//Elimina los que no tienen turno asociado while (actual.TimeOfDay < horaout.TimeOfDay) { _agendaManager.GuardarAgenda(agenda, actual); actual = actual.AddMinutes(30); } } } }