示例#1
0
        private void OnSave(Object obj)
        {
            var e = (GridViewRowEditEndedEventArgs)obj;

            var item = (VW_MOD_POZO)e.NewData;

            CONFIGURACION_ADMINISTRADOR config = db.CONFIGURACION_ADMINISTRADOR.Where(w => w.IDMODPOZO == item.IDMODPOZO).SingleOrDefault();



            if (config == null)
            {
                config = new CONFIGURACION_ADMINISTRADOR()
                {
                    IDMODPOZO          = item.IDMODPOZO,
                    FECHA_PROGRAMACION = item.FECHA_PROGRAMACION.GetValueOrDefault(),
                    IDUSUARIO          = IdUsuario,
                    MAXREINTENTOS      = item.MAXREINTENTOS.GetValueOrDefault()
                };
                ModModel.Insert(config);
            }
            else
            {
                SVModel.ModeloClient server = new SVModel.ModeloClient();

                server.Reset(config.IDMODPOZO, item.MAXREINTENTOS.GetValueOrDefault());
            }
            MessageBox.Show("Configuración guardada, ahora lo podras ver en Proceso");

            Procesos = new ObservableCollection <VW_MOD_POZO>(ModModel.GetList(1));
            Modelos  = new ObservableCollection <VW_MOD_POZO>(ModModel.GetList(null));
        }
示例#2
0
        private void OnChange(Object e)
        {
            var tab    = (Telerik.Windows.Controls.RadSelectionChangedEventArgs)e;
            var source = tab.Source;

            switch (((System.Windows.Controls.Primitives.Selector)source).SelectedIndex)
            {
            case 0:
                Modelos       = new ObservableCollection <VW_MOD_POZO>(ModModel.GetList(null));
                FlashData.Key = FlashData.Types.error;
                break;

            case 1:
                Procesos      = new ObservableCollection <VW_MOD_POZO>(ModModel.GetList(1));
                FlashData.Key = FlashData.Types.success;
                break;

            case 2:
                Realizados = new ObservableCollection <VW_MOD_POZO>(ModModel.GetList(3));
                break;
            }

            //Message = "Mensaje desde Message => LoadList "+ ((System.Windows.Controls.Primitives.Selector)source).SelectedIndex.ToString();

            //FlashData.Message = Message;
        }
示例#3
0
        //Proximamente depreciado 09 Dic 2019
        private static void OnTimedEvent(Object source, System.Timers.ElapsedEventArgs e)
        {
            int cola = 0, proceso = 0;

            Dispose = Libraries.Settings.Get("open_server") == "1"?true:false;


            var list = ModModel.GetList();  // db.VW_MOD_POZO.Where(w => (w.ESTATUS == 1 || w.ESTATUS == 2) && w.FECHA_PROGRAMACION < DateTime.Now).OrderBy(o => o.FECHA_PROGRAMACION).ToList(); // db.VW_MOD_POZO.Where(w => w.ESTATUS ==1 &&  w.FECHA_PROGRAMACION >= tfrom && w.FECHA_PROGRAMACION< tto).OrderBy(o=>o.FECHA_PROGRAMACION).ToList();

            //var actives = db.VW_MOD_POZO.Where(w => w.ESTATUS == 2).OrderBy(o => o.FECHA_PROGRAMACION).ToList();//(from active in list where active.ESTATUS == 2  select active.ESTATUS).ToList();
            int licencias = Int32.Parse(Libraries.Settings.Get("no_licencias"));



            var tmp_tasks = tasks.ToArray();

            foreach (var task in tmp_tasks)
            {
                if (tasks[task.Key].IsAlive == false)
                {
                    tasks.Remove(task.Key);
                }
            }
            foreach (var mod in list)
            {
                if (tasks.Count < licencias && tasks.ContainsKey(mod.IDMODPOZO) == false)  // (tasks.Count < Int32.Parse(Settings.Get("no_licencias")))
                {
                    tasks[mod.IDMODPOZO] = new Thread(new ThreadStart(() => Execute(mod)));
                    proceso++;
                }



                if (mod.ESTATUS == 1)
                {
                    cola++;
                }
            }

            Console.WriteLine("En cola({0}), proceso({1}) {2} | Open Server: {3}", cola.ToString(), tasks.Count.ToString(), e.SignalTime, (Dispose?"Disponible":"Ocupado"));
            Console.WriteLine("*********************************************************************************");

            if (Dispose && tasks.Count > 0)
            {
                foreach (var task in tasks)
                {
                    if (tasks[task.Key].IsAlive == false)
                    {
                        tasks[task.Key].Start();
                        Console.WriteLine("Inicia tarea: " + task.Key);
                    }
                }
            }
        }
示例#4
0
        public void LoadLists()
        {
            Modelos    = new ObservableCollection <VW_MOD_POZO>(ModModel.GetList(null));
            Procesos   = new ObservableCollection <VW_MOD_POZO>(ModModel.GetList(1));
            Realizados = new ObservableCollection <VW_MOD_POZO>(ModModel.GetList(3));


            foreach (var m in Modelos)
            {
                if (campos.Contains(m.IDCAMPO) == false)
                {
                    campos.Add(m.IDCAMPO);
                }
            }
        }
示例#5
0
        private void OnSave(Object obj)
        {
            var e = (GridViewRowEditEndedEventArgs)obj;

            try
            {
                if (e.EditAction != Telerik.Windows.Controls.GridView.GridViewEditAction.Cancel)
                {
                    var item = (VW_MOD_POZO)e.NewData;

                    CONFIGURACION_ADMINISTRADOR config = db.CONFIGURACION_ADMINISTRADOR.Where(w => w.IDMODPOZO == item.IDMODPOZO).SingleOrDefault();



                    if (config == null)
                    {
                        string now = item.FECHA_PROGRAMACION.Value.ToShortDateString() + " " + DateTime.Now.TimeOfDay.ToString();
                        config = new CONFIGURACION_ADMINISTRADOR()
                        {
                            IDMODPOZO          = item.IDMODPOZO,
                            FECHA_PROGRAMACION = DateTime.Parse(now), //item.FECHA_PROGRAMACION.GetValueOrDefault(),
                            IDUSUARIO          = IdUsuario,
                            MAXREINTENTOS      = item.MAXREINTENTOS == null ? 1 : item.MAXREINTENTOS.GetValueOrDefault()
                        };
                        ModModel.Insert(config);
                    }
                    else
                    {
                        SVModel.ModeloClient server = new SVModel.ModeloClient();
                        server.Endpoint.Address = Address;
                        server.Reset(config.IDMODPOZO, item.MAXREINTENTOS.GetValueOrDefault());
                    }
                    MessageBox.Show("Configuración guardada, ahora lo podras ver en Proceso");

                    Procesos = new ObservableCollection <VW_MOD_POZO>(ModModel.GetList(1));
                    Modelos  = new ObservableCollection <VW_MOD_POZO>(ModModel.GetList(null));
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
示例#6
0
        private void OnChange(Object e)
        {
            var tab    = (Telerik.Windows.Controls.RadSelectionChangedEventArgs)e;
            var source = tab.Source;

            switch (((System.Windows.Controls.Primitives.Selector)source).SelectedIndex)
            {
            case 0:
                Modelos = new ObservableCollection <VW_MOD_POZO>(ModModel.GetList(null));

                break;

            case 1:
                Procesos = new ObservableCollection <VW_MOD_POZO>(ModModel.GetList(1));

                break;

            case 2:
                Realizados = new ObservableCollection <VW_MOD_POZO>(ModModel.GetList(3));
                break;
            }
        }
示例#7
0
        public static async Task TimerTask(TimeSpan interval, CancellationToken cancellationToken)
        {
            int licencias = Int32.Parse(Libraries.Settings.Get("no_licencias"));

            while (true)
            {
                try
                {
                    if (cancellationToken.IsCancellationRequested)
                    {
                        break;
                    }



                    int cola = 0, proceso = 0;
                    Dispose = Libraries.Settings.Get("open_server") == "1" ? true : false;


                    //Verificar que pasa caundo se cierra el programa y reinicia con el estatus 2
                    List <VW_MOD_POZO> list = ModModel.GetList();  //db.VW_MOD_POZO.Where(w => (w.ESTATUS == 1 || w.ESTATUS == 2) && w.FECHA_PROGRAMACION < DateTime.Now).OrderBy(o => o.FECHA_PROGRAMACION).ToList();

                    var tmp_tasks           = LTasks.Keys.ToArray();

                    foreach (var task in tmp_tasks)
                    {
                        if (LTasks[task].IsCompleted || LTasks[task].IsFaulted)
                        {
                            LTasks.Remove(task);
                        }
                    }

                    foreach (var mod in list)
                    {
                        if (LTasks.ContainsKey(mod.IDMODPOZO) == false)
                        {
                            LTasks.Add(mod.IDMODPOZO, new Task(() => Execute(mod)));
                        }
                        if (mod.ESTATUS == 1)
                        {
                            cola++;
                        }
                        if (mod.ESTATUS == 2)
                        {
                            proceso++;
                        }
                    }

                    Console.WriteLine("En cola({0}), proceso({1}) {2} | Open Server: {3}", cola.ToString(), proceso.ToString(), DateTime.Now, (Dispose ? "Disponible" : "Ocupado"));
                    Console.WriteLine("*********************************************************************************");


                    if (Modelo.Dispose() == true && LTasks.Count > 0)
                    {
                        string[] KTasks = LTasks.Keys.ToArray();
                        string   id     = KTasks[0];

                        if (LTasks[id].Status != TaskStatus.Running)
                        {
                            LTasks[id].Start();
                        }
                    }

                    await Task.Delay(interval, cancellationToken);
                }
                catch (Exception ex)
                {
                    WriteLineText(ex.Message, "danger");
                }
            }
        }
示例#8
0
        public async Task Process(TimeSpan interval, CancellationToken cancellationToken)
        {
            while (true)
            {
                bool Disposed = false;
                List <VW_MOD_POZO> ListModelos = new List <VW_MOD_POZO>();

                try
                {
                    if (cancellationToken.IsCancellationRequested)
                    {
                        break;
                    }

                    if (Local)
                    {
                        Disposed    = ModeloProsper.Modelo.Dispose();
                        ListModelos = ModModel.GetList();
                    }
                    else
                    {
                        List <string> JsonModelos = Server.GetList(1);
                        Disposed = Server.Dispose();
                        if (JsonModelos.Count > 0)
                        {
                            foreach (var vwModPozo in JsonModelos)
                            {
                                ListModelos.Add(JsonConvert.DeserializeObject <VW_MOD_POZO>(vwModPozo));
                            }
                        }
                    }
                    var tmp_tasks = LTasks.Keys.ToArray();

                    foreach (var task in tmp_tasks)
                    {
                        if (LTasks[task].IsCompleted || LTasks[task].IsFaulted)
                        {
                            LTasks.Remove(task);
                        }
                    }

                    foreach (var mod in ListModelos)
                    {
                        if (LTasks.ContainsKey(mod.IDMODPOZO) == false)
                        {
                            if (Local)
                            {
                                LTasks.Add(mod.IDMODPOZO, new Task(() => ExecLocal(db, mod, ModeMessage)));
                            }
                            else
                            {
                                LTasks.Add(mod.IDMODPOZO, new Task(() => ExecRemote(db, mod, Server, ModeMessage)));
                            }
                        }
                        if (mod.ESTATUS == 1)
                        {
                            //cola++;
                        }
                        if (mod.ESTATUS == 2)
                        {
                            // proceso++;
                        }
                    }

                    if (Disposed == true && LTasks.Count > 0)
                    {
                        string[] KTasks = LTasks.Keys.ToArray();
                        string   id     = KTasks[0];

                        if (LTasks[id].Status != TaskStatus.Running && LTasks[id].Status != TaskStatus.WaitingToRun)
                        {
                            LTasks[id].Start();
                        }
                    }
                    await Task.Delay(interval, cancellationToken);
                }
                catch (Exception ex)
                {
                    WriteEventLogEntry(System.Diagnostics.EventLogEntryType.Error, 1, ex.Message, ModeMessage);
                }
            }
        }
示例#9
0
        public void Process(object sender, ElapsedEventArgs e)
        {
            bool Disposed = false;

            try
            {
                List <VW_MOD_POZO> ListModelos = new List <VW_MOD_POZO>();
                if (Local)
                {
                    Disposed    = ModeloProsper.Modelo.Dispose();
                    ListModelos = ModModel.GetList();
                }
                else
                {
                    Disposed = Server.Dispose();
                    var JsonModelos = Server.GetList(1);
                    foreach (var vwModPozo in JsonModelos)
                    {
                        ListModelos.Add(JsonConvert.DeserializeObject <VW_MOD_POZO>(vwModPozo));
                    }
                }

                foreach (var mod in ListModelos)
                {
                    if (LTasks.ContainsKey(mod.IDMODPOZO) == false)
                    {
                        if (Local)
                        {
                            LTasks.Add(mod.IDMODPOZO, new Task(() => ExecLocal(db, mod, ModeMessage)));
                        }
                        else
                        {
                            LTasks.Add(mod.IDMODPOZO, new Task(() => ExecRemote(db, mod, Server, ModeMessage)));
                        }
                    }
                    //if (mod.ESTATUS == 1)
                    //{
                    //    //cola++;
                    //}
                    //if (mod.ESTATUS == 2)
                    //{
                    //    // proceso++;
                    //}
                }
                var tmp_tasks = LTasks.Keys.ToArray();

                foreach (var task in tmp_tasks)
                {
                    if (LTasks[task].IsCompleted || LTasks[task].IsFaulted)
                    {
                        LTasks.Remove(task);
                    }
                }

                if (Disposed == true && LTasks.Count > 0)
                {
                    string[] KTasks = LTasks.Keys.ToArray();
                    string   id     = KTasks[0];

                    if (LTasks[id].Status != TaskStatus.Running && LTasks[id].Status != TaskStatus.WaitingToRun)
                    {
                        LTasks[id].Start();
                    }
                }
            }
            catch (Exception ex)
            {
                if (ModeMessage == Modo.defaults)
                {
                    throw new Exception(ex.Message);
                }
                else
                {
                    WriteEventLogEntry(System.Diagnostics.EventLogEntryType.Error, 1, ex.Message, ModeMessage);
                }
            }
        }