Exemplo n.º 1
0
        private void EjecutarAgendamiento(List <t_formulario> idNoAgendados)
        {
            try
            {
                DateTime fecha             = DateTime.Now;
                var      fechaAgendamiento = Convert.ToString(fecha);
                log.EscribaLog("EjecutarAgendamiento()", "Iniciando el metodo EjecutarAgendamiento()");
                bool control = false;

                foreach (var filaAgendar in idNoAgendados)
                {
                    if (filaAgendar.EstadoAgendamiento == 4)
                    {
                        bd_agenda.t_formulario.Attach(filaAgendar);
                        filaAgendar.EstadoAgendamiento = 1;
                        bd_agenda.Configuration.ValidateOnSaveEnabled = false;
                        bd_agenda.SaveChanges();

                        var    credenciales = (from db in bd_agenda.t_login_rp1cloud where db.CodigoSala == filaAgendar.Sala select db).First();
                        string usuario      = credenciales.Usuario_Rp1Cloud;
                        string clave        = credenciales.Clave;

                        var difDiasAgendamiento = Convert.ToInt32(Convert.ToDateTime(filaAgendar.FechaFinalizacion).Day - Convert.ToDateTime(filaAgendar.FechaRealizacion).Day);

                        for (int i = 0; i <= difDiasAgendamiento; i++)
                        {
                            bd_agenda.t_formulario.Attach(filaAgendar);
                            filaAgendar.FechaRealizacion = Convert.ToDateTime(filaAgendar.FechaRealizacion).AddDays(i).ToString();
                            control = servicio.ServicioAgenda(filaAgendar, usuario, clave);

                            if (i == difDiasAgendamiento)
                            {
                                filaAgendar.FechaRealizacion = Convert.ToDateTime(filaAgendar.FechaRealizacion).AddDays(-difDiasAgendamiento).ToString();
                            }
                        }

                        bd_agenda.SP_REGISTRO_RP1CLUOD(filaAgendar.Id, filaAgendar.Num_Consecutivo, filaAgendar.Codigo, fechaAgendamiento);

                        if (control == true)
                        {
                            filaAgendar.EstadoAgendamiento = 5;
                            log.EscribaLog("EjecutarAgendamiento()", "Registro con error N° " + filaAgendar.Id);
                        }
                        else
                        {
                            filaAgendar.EstadoAgendamiento = 2;
                            log.EscribaLog("EjecutarAgendamiento()", "Registro agendado N° " + filaAgendar.Id);
                        }

                        bd_agenda.Configuration.ValidateOnSaveEnabled = false;
                        bd_agenda.SaveChanges();
                    }
                }
            }
            catch (Exception ex)
            {
                log.EscribaLog("EjecutarAgendamiento()_Error", "El error es : " + ex.ToString());
            }
        }