コード例 #1
0
        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);
                }
            }
        }
コード例 #2
0
        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);
                    }
                }
            }
        }