Ejemplo n.º 1
0
        public static bool Insert(CONFIGURACION_ADMINISTRADOR config)
        {
            try
            {
                Entities_ModeloCI db = new Entities_ModeloCI();
                config.ESTATUS         = 1;//0=Cancelado,1=Proceso,2=Ejecutandose,3=Ejecutado
                config.FECHA_REGLA     = DateTime.Now;
                config.IDCONFIGURACION = Guid.NewGuid().ToString().ToUpper();
                db.CONFIGURACION_ADMINISTRADOR.Add(config);
                db.SaveChanges();

                return(true);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
                return(false);
            }
        }
Ejemplo n.º 2
0
        public static bool  Save(RESULTADOS item)
        {
            try
            {
                using (Entities_ModeloCI db = new Entities_ModeloCI())
                {
                    db.RESULTADOS.Add(item);
                    //var ids_estabilidad = db.CAT_ESTABILIDAD_OPC.Where(w => w.Ind_Est != null).ToDictionary(d => d.Ind_Est, d => d.IDCATDESCRIPCION);

                    //db.RESULTADOS.Add(new RESULTADOS() { IDRESULTADOS = Guid.NewGuid().ToString().ToUpper(), IDCATDESCRIPCION = ids_estabilidad[item.Ind_Est], IDDATOSENTRADAEST = configuracion.IDDATOSENTRADAEST, Ind_Est = item.Ind_Est, Ptr = item.Ptr, DiaVal = item.DiaVal, Dp = item.Dp, Dpvalve = item.Dpvalve, Dvalve = item.Dvalve, GOR = item.GOR, QI = item.Ql, Qg = item.Qg, Pwf_IPR = item.Pwf_IPR, Twh = item.Twh, TotalQGas = item.TotalQgas, Pwf_quicklook = item.Pwf_quicklook, Pws = item.Pws, Pti = item.Pti, Ptri = item.Ptri, Tvalv = item.Tvalv, GOR_quicklool = item.GOR_quicklook, GORFREE = item.GORFREE, Ptrcalc = item.Ptrcalc, PI = item.PI, Qgcrit = item.Qgcrit, Qcporcent = item.Qcporcent, HTC = item.HTC, Pwh = item.Pwh, Qgi = item.Qgi, Wc = item.Wc });
                    db.SaveChanges();
                }

                return(true);
            }
            catch (Exception ex) {
                Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(item) + " ->  " + ex.Message);

                return(false);
            }
        }
Ejemplo n.º 3
0
        private static void SaveEstabilidad(CONFIGURACION Configuracion, List <ModeloProsper.Clases.MapaEstabilidad.Parametros_Estabilidad> Resultados)
        {
            try
            {
                using (Entities_ModeloCI db_n = new Entities_ModeloCI())
                {
                    if (Resultados.Count > 0)
                    {
                        WriteLineText("Guardando Estabilidad:" + Resultados.Count.ToString() + " resultados (" + Configuracion.IDMODPOZO + ").");
                        var ids_estabilidad = db.CAT_ESTABILIDAD_OPC.Where(w => w.Ind_Est != null).ToDictionary(d => d.Ind_Est, d => d.IDCATDESCRIPCION);
                        //Dr Ivan
                        foreach (var item in (from r in Resultados where r.Variable != "Qgi" select r).ToList())
                        {
                            RESULTADOS insert_ivan = new RESULTADOS()
                            {
                                IDRESULTADOS      = Guid.NewGuid().ToString().ToUpper(),
                                IDCATDESCRIPCION  = ids_estabilidad[item.Ind_Est],
                                IDDATOSENTRADAEST = Configuracion.IDDATOSENTRADAEST,
                                Ind_Est           = item.Ind_Est,
                                Ptr           = item.Ptr,
                                DiaVal        = item.DiaVal,
                                Dp            = item.Dp,
                                Dpvalve       = item.Dpvalve,
                                Dvalve        = item.Dvalve,
                                GOR           = item.GOR,
                                QI            = item.Ql,
                                Qg            = item.Qg,
                                Pwf_IPR       = item.Pwf_IPR,
                                Twh           = item.Twh,
                                TotalQGas     = item.TotalQgas,
                                Pwf_quicklook = item.Pwf_quicklook,
                                Pws           = item.Pws,
                                Pti           = item.Pti,
                                Ptri          = item.Ptri,
                                Tvalv         = item.Tvalv,
                                GOR_quicklool = item.GOR_quicklook,
                                GORFREE       = item.GORFREE,
                                Ptrcalc       = item.Ptrcalc,
                                PI            = item.PI,
                                Qgcrit        = item.Qgcrit,
                                Qcporcent     = item.Qcporcent,
                                HTC           = item.HTC,
                                Pwh           = item.Pwh,
                                Qgi           = item.Qgi,
                                Wc            = item.Wc,
                                VARIABLE      = item.Variable,
                                metodologia   = 0
                            };
                            RESULTADOS insert_pob = new RESULTADOS()
                            {
                                IDRESULTADOS      = Guid.NewGuid().ToString().ToUpper(),
                                IDCATDESCRIPCION  = ids_estabilidad[item.Ind_Poblano],
                                IDDATOSENTRADAEST = Configuracion.IDDATOSENTRADAEST,
                                Ind_Est           = item.Ind_Poblano,
                                Ptr           = item.Ptr,
                                DiaVal        = item.DiaVal,
                                Dp            = item.Dp,
                                Dpvalve       = item.Dpvalve,
                                Dvalve        = item.Dvalve,
                                GOR           = item.GOR,
                                QI            = item.Ql,
                                Qg            = item.Qg,
                                Pwf_IPR       = item.Pwf_IPR,
                                Twh           = item.Twh,
                                TotalQGas     = item.TotalQgas,
                                Pwf_quicklook = item.Pwf_quicklook,
                                Pws           = item.Pws,
                                Pti           = item.Pti,
                                Ptri          = item.Ptri,
                                Tvalv         = item.Tvalv,
                                GOR_quicklool = item.GOR_quicklook,
                                GORFREE       = item.GORFREE,
                                Ptrcalc       = item.Ptrcalc,
                                PI            = item.PI,
                                Qgcrit        = item.Qgcrit,
                                Qcporcent     = item.Qcporcent,
                                HTC           = item.HTC,
                                Pwh           = item.Pwh,
                                Qgi           = item.Qgi,
                                Wc            = item.Wc,
                                VARIABLE      = item.Variable,
                                metodologia   = 1
                            };

                            db_n.RESULTADOS.Add(insert_ivan);
                            db_n.RESULTADOS.Add(insert_pob);
                        }
                        db_n.SaveChanges();
                        WriteLineText("Estabilidad guardada: " + Configuracion.IDMODPOZO);
                    }
                }
            }
            catch (Exception ex)
            {
                WriteLineText(Configuracion.IDMODPOZO + ": " + ex.Message, "danger");
            }
        }
Ejemplo n.º 4
0
        private static bool Execute(VW_MOD_POZO mod_pozo)
        {
            bool response = false;

            ModeloProsper.Logger Logger = new ModeloProsper.Logger(mod_pozo.IDMODPOZO);
            ModeloProsper.Modelo modelo = new ModeloProsper.Modelo(mod_pozo.IDMODPOZO);

            var factory = new ChannelFactory <Interfaces.IModelo>(new BasicHttpBinding()
            {
                SendTimeout = TimeSpan.Parse("0:15:00")
            }, EndPointModelo);

            Interfaces.IModelo server = factory.CreateChannel();

            WriteLineText("Inicia modelo: " + mod_pozo.POZO);

            Dictionary <int, int> CatSaps = db.CAT_SAP.ToDictionary(k => k.IDCATSAP, d => d.PROSPER.GetValueOrDefault());

            try
            {
                Logger.SetEstatus(2);

                switch (mod_pozo.FUNCION)
                {
                case 1:

                    response = modelo.Sensibilidad_BN();


                    var conds = db.PA_operacionPozosFecha(mod_pozo.IDPOZO).ToList();
                    PA_operacionPozosFecha_Result cond = conds[0];

                    var cabezera = db.CabeceraPozoGBN.Where(w => w.bajaLogica == null && w.idPozo == mod_pozo.IDPOZO).SingleOrDefault();

                    if (response && cabezera != null && cond.FEC_CONDICION == mod_pozo.FECHAMODELO)
                    {
                        var inyeccion = db.DatosInyeccion.Where(w => w.idCabeceraPozoGBN == cabezera.idCabeceraPozoGBN).ToList();


                        inyeccion.ForEach(e => db.DatosInyeccion.Remove(e));
                        db.SaveChanges();


                        var QGI = db.COMPORTAMIENTO_GAS.Where(w => w.IDMODPOZO == mod_pozo.IDMODPOZO).SingleOrDefault();

                        if (QGI != null)
                        {
                            var QGIDetalles = db.COMPORTAMIENTO_GAS_DETALLES.Where(w => w.IDCOMPORTAMIENTOGAS == QGI.IDCOMPORTAMIENTOGAS).OrderBy(o => o.XAUX).ToList();


                            if (QGIDetalles.Count > 0)
                            {
                                foreach (var dt in QGIDetalles)
                                {
                                    db.DatosInyeccion.Add(new DatosInyeccion()
                                    {
                                        idCabeceraPozoGBN = cabezera.idCabeceraPozoGBN, qLiq = dt.YAUX.GetValueOrDefault(), qGasBN = dt.XAUX.GetValueOrDefault()
                                    });                                                                                                                                                                           //Multiplicacion x 1000 fue removida de xaux
                                }
                                db.SaveChanges();
                            }
                        }

                        cabezera.porc_agua     = cond.gastoagua;
                        cabezera.presionCabeza = cond.PRESION_TP.GetValueOrDefault();
                        cabezera.qGasBN        = cond.VOLUMEN_BN.GetValueOrDefault();
                        cabezera.fecha         = cond.FEC_CONDICION.GetValueOrDefault();


                        db.Entry(cabezera).State = EntityState.Modified;
                        db.SaveChanges();
                    }



                    break;

                case 2:


                    response = modelo.Update();



                    break;

                default:
                    //ModeloProsper.Modelo modelo = new ModeloProsper.Modelo(mod_pozo.IDMODPOZO);


                    response = modelo.Create();



                    break;
                }



                if (response)
                {
                    if (mod_pozo.ESTABILIDAD > 0)
                    {
                        var Configuracion = (from config in db.CONFIGURACION where config.IDMODPOZO == mod_pozo.IDMODPOZO && config.Fecha == (db.CONFIGURACION.Where(w => w.IDMODPOZO == mod_pozo.IDMODPOZO && config.ESTATUS == 1).Max(m => m.Fecha)) select config).SingleOrDefault();

                        //if (Configuracion != null)
                        //{
                        //    Estabilidad(mod_pozo, Configuracion);

                        //}
                        ModeloProsper.Estabilidad estabilidad = new Estabilidad(Configuracion);
                        estabilidad.Execute();
                        estabilidad.Save();
                    }

                    Logger.SetEstatus(3, "Ejecución correcta");
                    WriteLineText("Termina modelo: " + mod_pozo.POZO, "success");
                }


                return(response);
            }
            catch (Exception ex)
            {
                Logger.SetLog(-1, ex.Message);

                if ((Logger.Intentos + 1) > Logger.Configuracion.MAXREINTENTOS) //revisar hay observaciones en este algoritmo
                {
                    Logger.SetEstatus(-1);
                }
                else
                {
                    modelo.Reset(mod_pozo.IDMODPOZO, 0);
                }
                WriteLineText(ex.Message, "danger");



                return(false);
            }
        }
Ejemplo n.º 5
0
        private static bool ExecLocal(Entities_ModeloCI db, VW_MOD_POZO mod_pozo, Modo MError)
        {
            bool response = false;

            ModeloProsper.Logger Logger = new ModeloProsper.Logger(mod_pozo.IDMODPOZO);
            ModeloProsper.Modelo modelo = new ModeloProsper.Modelo(mod_pozo.IDMODPOZO);



            try
            {
                Logger.SetEstatus(2);

                switch (mod_pozo.FUNCION)
                {
                case 1:

                    response = modelo.Sensibilidad_BN();


                    var conds = db.PA_operacionPozosFecha(mod_pozo.IDPOZO).ToList();
                    PA_operacionPozosFecha_Result cond = conds[0];

                    var cabezera = db.CabeceraPozoGBN.Where(w => w.bajaLogica == null && w.idPozo == mod_pozo.IDPOZO).SingleOrDefault();

                    if (response && cabezera != null && cond.FEC_CONDICION == mod_pozo.FECHAMODELO)
                    {
                        var inyeccion = db.DatosInyeccion.Where(w => w.idCabeceraPozoGBN == cabezera.idCabeceraPozoGBN).ToList();


                        inyeccion.ForEach(e => db.DatosInyeccion.Remove(e));
                        db.SaveChanges();


                        var QGI = db.COMPORTAMIENTO_GAS.Where(w => w.IDMODPOZO == mod_pozo.IDMODPOZO).SingleOrDefault();

                        if (QGI != null)
                        {
                            var QGIDetalles = db.COMPORTAMIENTO_GAS_DETALLES.Where(w => w.IDCOMPORTAMIENTOGAS == QGI.IDCOMPORTAMIENTOGAS).OrderBy(o => o.XAUX).ToList();


                            if (QGIDetalles.Count > 0)
                            {
                                foreach (var dt in QGIDetalles)
                                {
                                    db.DatosInyeccion.Add(new DatosInyeccion()
                                    {
                                        idCabeceraPozoGBN = cabezera.idCabeceraPozoGBN, qLiq = dt.YAUX.GetValueOrDefault(), qGasBN = dt.XAUX.GetValueOrDefault()
                                    });                                                                                                                                                                           //Multiplicacion x 1000 fue removida de xaux
                                }
                                db.SaveChanges();
                            }
                        }

                        cabezera.porc_agua     = cond.gastoagua;
                        cabezera.presionCabeza = cond.PRESION_TP.GetValueOrDefault();
                        cabezera.qGasBN        = cond.VOLUMEN_BN.GetValueOrDefault();
                        cabezera.fecha         = cond.FEC_CONDICION.GetValueOrDefault();


                        db.Entry(cabezera).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                    break;

                case 2:
                    response = modelo.Update();
                    break;

                default:

                    response = modelo.Create();


                    break;
                }


                Logger.SetEstatus(3, "Ejecución correcta");

                if (MError == Modo.console)
                {
                    WriteLineText(mod_pozo.POZO + ": Modelo ejecutado correctamente", "success");
                }

                return(response);
            }
            catch (Exception ex)
            {
                if (Logger.Configuracion.ESTATUS == 2)
                {
                    Logger.SetEstatus(-1, ex.Message);
                }

                if ((Logger.Intentos + 1) < Logger.Configuracion.MAXREINTENTOS)
                {
                    modelo.Reset(mod_pozo.IDMODPOZO, 0);
                }

                WriteEventLogEntry(System.Diagnostics.EventLogEntryType.Error, 21, mod_pozo.POZO + ": " + ex.Message, MError);
                return(false);
            }
        }