Пример #1
0
 public void TestScript()
 {
     if (corriendo) {
         LogMessage("Ya esta corriendo un script");
         return;
     }
     if (BtnChecked.Checked)
         txtLog.Clear();
     var procAux = new Procesador();
     PrepararProceso(procAux);
     LogMessage("probando script");
     Task.Factory.StartNew(() => {
         var proc = new CorrerScript();
         proc.Data["proc"] = procAux;
         proc.OnMessage += LogMessageEvent;
         var reloj = new Stopwatch();
         reloj.Start();
         try {
             lock (this)
                 corriendo = true;
             proc.Correr(editorScript.Text, config.CarpetaTrabajo);
         } catch (Exception ex) {
             LogMessage("Error " + ex.Message, ex);
         } finally {
             lock (this)
                 corriendo = false;
             reloj.Stop();
             proc.OnMessage -= LogMessageEvent;
             LogMessage("Terminado en " + reloj.Elapsed.TotalSeconds);
         }
     }).ContinueWith(a => {
         if (a.IsFaulted && a.Exception != null) {
             var ex = a.Exception.InnerException;
             LogMessage("Error " + ex.Message, ex);
         }
     });
 }
Пример #2
0
        private void BtnProceso_Click(object sender, EventArgs e)
        {
            var proc = new Procesador();
            var error = PrepararProceso(proc);
            if (!string.IsNullOrEmpty(error)) {
                LogMessage(error);
                MessageBox.Show(error);
                return;
            }

            dynamic opciones = new ExpandoObject();
            opciones.limite = 0;

            var task = new Task(() => {
                proc.OnMessage += LogMessageEvent;
                proc.OnProgress += ReportProgreso;
                var reloj = new Stopwatch();
                reloj.Start();
                LogMessage("Empezando con " + proc.City.Nombre);
                var conf = new ConfigProceso {
                    CarpetaTrabajo = config.CarpetaTrabajo,
                    ScriptFile = Path.Combine(config.CarpetaTrabajo, config.ScriptProceso)
                };
                try {
                    proc.Calcular(conf);
                    LogMessage("Calculo terminado para " + proc.City.Nombre);
                } catch (Exception ex) {
                    LogMessage("Error " + ex.Message, ex);
                } finally {
                    reloj.Stop();
                    proc.OnMessage -= LogMessageEvent;
                    proc.OnProgress -= ReportProgreso;
                    LogMessage("Terminado en " + reloj.Elapsed.TotalSeconds + "segundos");
                }
            });
            task.Start();
        }
Пример #3
0
 public string PrepararProceso(Procesador proc)
 {
     var error = "";
     var aux = GetSelected(listViewFuentes);
     if (string.IsNullOrEmpty(aux))
         error = "Seleccione Fuente";
     else
         proc.Fuente = fuentesFactory.Fuentes.FirstOrDefault(x => x.Name == aux);
     aux = GetSelected(listViewFichas);
     if (string.IsNullOrEmpty(aux))
         error = "Seleccione Ficha";
     else
         proc.Ficha = datosProceso.Fichas.FirstOrDefault(x => x.Nombre == aux);
     aux = GetSelected(listViewCatalogos);
     if (!string.IsNullOrEmpty(aux))
         proc.Catalogo = datosProceso.CatalogosFuentes[aux];
     aux = GetSelected(listViewMapeos);
     if (!string.IsNullOrEmpty(aux))
         proc.Mapeos = datosProceso.MapeosCargados[aux];
     if (string.IsNullOrEmpty(config.ScriptProceso))
         error = "Falta el script";
     proc.City = ComboCiudad.ComboBox.SelectedItem as Ciudad;
     return error;
 }