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); } }
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); } }
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"); } }
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); } }
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); } }