示例#1
0
        private ContenidoArchivo CargarDataSet(string nombreArchivo, DataSet auxDataSet)
        {
            ContenidoArchivo resultado            = ContenidoArchivo.Informe;
            string           archivoEsquema       = nombreArchivo + ".sch";
            string           archivoDescomprimido = nombreArchivo.Substring(0, nombreArchivo.Length - 3);

            DescomprimirArchivo(nombreArchivo);

            if (nombreArchivo.Contains("INFORMEFALLA_"))
            {
                resultado = ContenidoArchivo.Informe;
                consultarDatosInfFalla().WriteXmlSchema(archivoEsquema);
            }
            else
            {
                resultado = ContenidoArchivo.Notificacion;
                consultarDatosNotificacion().WriteXmlSchema(archivoEsquema);
            }

            auxDataSet.ReadXmlSchema(archivoEsquema);
            auxDataSet.ReadXml(archivoDescomprimido);

            if (File.Exists(archivoEsquema))
            {
                File.Delete(archivoEsquema);
            }

            if (File.Exists(archivoDescomprimido))
            {
                File.Delete(archivoDescomprimido);
            }

            return(resultado);
        }
示例#2
0
 public void Ejecutar()
 {
     try
     {
         string archivo = ObtenerArchivo();
         if (!string.IsNullOrEmpty(archivo))
         {
             DataSet          ds        = new DataSet();
             ContenidoArchivo contenido = CargarDataSet(archivo, ds);
             if (contenido == ContenidoArchivo.Informe)
             {
                 DataTable informe = null;
                 if (ds.Tables.IndexOf("F_GF_INFORMEFALLA") >= 0)
                 {
                     informe = ds.Tables["F_GF_INFORMEFALLA"];
                     if (informe.Rows.Count > 0)
                     {
                         ds.Tables["F_GF_INFORMEFALLA"].Rows[0]["D_COD_ESTADO_INF"] = D_COD_ESTADO_INF.ENVIADO;
                     }
                 }
             }
             Importar(ds, contenido);
             if (System.IO.File.Exists(@archivo))
             {
                 System.IO.File.Delete(@archivo);
             }
         }
     }
     catch (Exception ex)
     {
         PistaMgr.Instance.Error("SisFalla", ex);
     }
 }
示例#3
0
 public void Ejecutar()
 {
     try
     {
         string archivo = ObtenerArchivo();
         if (!string.IsNullOrEmpty(archivo))
         {
             DataSet          ds        = new DataSet();
             ContenidoArchivo contenido = CargarDataSet(archivo, ds);
             Importar(ds, contenido);
         }
     }
     catch (Exception ex)
     {
         PistaMgr.Instance.Error("SisFalla", ex);
     }
 }
示例#4
0
        private bool Importar(DataSet dts, ContenidoArchivo contenido)
        {
            bool             actualizar    = true;
            bool             mensaje       = true;
            List <IMgrLocal> managersLocal = new List <IMgrLocal>();

            if (contenido == ContenidoArchivo.Notificacion)
            {
                managersLocal.Add(ModeloMgr.Instancia.DefDominioMgr as IMgrLocal);
                managersLocal.Add(ModeloMgr.Instancia.RegFallaMgr as IMgrLocal);
                managersLocal.Add(ModeloMgr.Instancia.NotificacionMgr as IMgrLocal);
            }
            else
            {
                managersLocal.Add(ModeloMgr.Instancia.InformeFallaMgr as IMgrLocal);
                managersLocal.Add(ModeloMgr.Instancia.OperacionAlimentadorMgr as IMgrLocal);
                managersLocal.Add(ModeloMgr.Instancia.OperacionInterruptoresMgr as IMgrLocal);
                managersLocal.Add(ModeloMgr.Instancia.RelesOperadosMgr as IMgrLocal);
                managersLocal.Add(ModeloMgr.Instancia.RRegFallaComponenteMgr as IMgrLocal);
                managersLocal.Add(ModeloMgr.Instancia.TiempoDetalleMgr as IMgrLocal);
                managersLocal.Add(ModeloMgr.Instancia.AsignacionResposabilidadMgr as IMgrLocal);
            }

            try
            {
                foreach (var mgr in managersLocal)
                {
                    if (dts.Tables.Contains(mgr.NombreTabla))
                    {
                        DataTable      tabla        = dts.Tables[mgr.NombreTabla];
                        List <DataRow> rowsNuevos   = new List <DataRow>();
                        List <DataRow> rowsAntiguos = new List <DataRow>();

                        foreach (DataRow row in tabla.Rows)
                        {
                            if (actualizar)
                            {
                                bool esNuevo = !mgr.Existe(mgr.NombreTabla, row);
                                if (esNuevo)
                                {
                                    rowsNuevos.Add(row);
                                }
                                else
                                {
                                    rowsAntiguos.Add(row);
                                }

                                if (!esNuevo && mensaje)// && Sesion.Instancia.RolSIN == "CNDC")
                                {
                                    DialogResult r = MessageBox.Show("El registro ya fue actualizado, desea solaparlo, posible inconsistencia en registros", "Advertencia", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
                                    if (r == DialogResult.No)
                                    {
                                        actualizar = false;
                                    }
                                    mensaje = false;
                                }
                            }
                        }

                        if (actualizar)
                        {
                            if (rowsNuevos.Count > 0)
                            {
                                mgr.Insertar(rowsNuevos);
                            }

                            if (rowsAntiguos.Count > 0)
                            {
                                mgr.Actualizar(rowsAntiguos);
                            }
                        }
                    }
                }

                if (actualizar)
                {
                    MessageBox.Show("Concluida satisfactoriamente", "Importacion.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception ex)
            {
                PistaMgr.Instance.Error("SISFALLA.ImportarXML()", ex);
            }
            return(actualizar);
        }
示例#5
0
        public bool Importar(DataSet dts, ContenidoArchivo contenido, bool silencioso)
        {
            Console.WriteLine("wwwwwwww aqui 1");
            bool             actualizar    = true;
            bool             mensaje       = !silencioso;
            List <IMgrLocal> managersLocal = new List <IMgrLocal>();

            if (contenido == ContenidoArchivo.Notificacion)
            {
                managersLocal.Add(ModeloMgr.Instancia.DefDominioMgr as IMgrLocal);
                managersLocal.Add(ModeloMgr.Instancia.RegFallaMgr as IMgrLocal);
                managersLocal.Add(ModeloMgr.Instancia.NotificacionMgr as IMgrLocal);
            }
            else
            {
                managersLocal.Add(ModeloMgr.Instancia.InformeFallaMgr as IMgrLocal);
                managersLocal.Add(ModeloMgr.Instancia.OperacionAlimentadorMgr as IMgrLocal);
                managersLocal.Add(ModeloMgr.Instancia.OperacionInterruptoresMgr as IMgrLocal);
                managersLocal.Add(ModeloMgr.Instancia.RelesOperadosMgr as IMgrLocal);
                managersLocal.Add(ModeloMgr.Instancia.RRegFallaComponenteMgr as IMgrLocal);
                managersLocal.Add(ModeloMgr.Instancia.TiempoDetalleMgr as IMgrLocal);
                managersLocal.Add(ModeloMgr.Instancia.AsignacionResposabilidadMgr as IMgrLocal);
                managersLocal.Add(ModeloMgr.Instancia.ColapsoMgr as IMgrLocal);
                managersLocal.Add(ModeloMgr.Instancia.AnalisisMgr as IMgrLocal);
            }

            try
            {
                foreach (var mgr in managersLocal)
                {
                    if (mgr != null && dts.Tables.Contains(mgr.NombreTabla))
                    {
                        DataTable      tabla        = dts.Tables[mgr.NombreTabla];
                        List <DataRow> rowsNuevos   = new List <DataRow>();
                        List <DataRow> rowsAntiguos = new List <DataRow>();

                        foreach (DataRow row in tabla.Rows)
                        {
                            if (actualizar)
                            {
                                bool esNuevo = !mgr.Existe(mgr.NombreTabla, row);
                                if (esNuevo)
                                {
                                    rowsNuevos.Add(row);
                                }
                                else
                                {
                                    rowsAntiguos.Add(row);
                                }

                                if (!esNuevo && mensaje)// && Sesion.Instancia.RolSIN == "CNDC")
                                {
                                    DialogResult r = MessageBox.Show("El registro ya fue actualizado, desea solaparlo, posible inconsistencia en registros", "Advertencia", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
                                    if (r == DialogResult.No)
                                    {
                                        actualizar = false;
                                    }
                                    mensaje = false;
                                }
                            }
                        }

                        if (actualizar)
                        {
                            if (rowsNuevos.Count > 0)
                            {
                                mgr.Insertar(rowsNuevos);
                            }

                            if (rowsAntiguos.Count > 0)
                            {
                                mgr.Actualizar(rowsAntiguos);
                            }
                        }
                    }
                }

                if (actualizar)
                {
                    if (contenido == ContenidoArchivo.Informe && Sesion.Instancia.EmpresaActual.PkCodPersona == 7)
                    {
                        DataTable          tablaInforme  = dts.Tables[InformeFalla.NOMBRE_TABLA];
                        InformeFalla       informe       = new InformeFalla(tablaInforme.Rows[0]);
                        DOMINIOS_OPERACION tipoOperacion = DOMINIOS_OPERACION.AGENTE_ENVIA_PRELIMINAR;

                        if (informe.PkDCodTipoinforme == (long)PK_D_COD_TIPOINFORME.PRELIMINAR)
                        {
                            tipoOperacion = DOMINIOS_OPERACION.MANUAL_AGENTE_ENVIA_PRELIMINAR;
                        }
                        else if (informe.PkDCodTipoinforme == (long)PK_D_COD_TIPOINFORME.FINAL)
                        {
                            tipoOperacion = DOMINIOS_OPERACION.MANUAL_AGENTE_ENVIA_FINAL;
                        }

                        Operacion opn = new Operacion();
                        opn.RegistrarOperacion(tipoOperacion, informe.PkCodFalla, informe.PkOrigenInforme);
                    }

                    if (!silencioso)
                    {
                        MessageBox.Show("Concluida satisfactoriamente", "Importacion.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("wwwwwwww aqui 2");
                PistaMgr.Instance.Error("ImportarXML()", ex);
            }
            return(actualizar);
        }
示例#6
0
 public bool Importar(DataSet dts, ContenidoArchivo contenido)
 {
     return(Importar(dts, contenido, false));
 }