예제 #1
0
        public bool ConfirmarSinc(string token, long codPersona, string nombreTabla, byte[] tabla)
        {
            bool resultado = false;

            try
            {
                AsegurarConexion(token);
                AsegurarMgrsLocal();
                if (nombreTabla == Notificacion.NOMBRE_TABLA)
                {
                    tabla = GZip.DesComprimir(tabla);
                    DataTable             t         = Serializador.DeSerializar <DataTable>(tabla);
                    int[]                 numsFalla = GetNumFalla(t);
                    OraDalNotificacionMgr notifMgr  = new OraDalNotificacionMgr(_conexion);
                    notifMgr.ActualizarNotificaciones(codPersona, numsFalla, (long)D_COD_ESTADO_NOTIFICACION.RECIBIDO);
                    PistaMgr.Instance.Debug("WcfServicioSISFALLA.ConfirmarSinc()", "cant_fallas" + numsFalla.Length.ToString());

                    Operacion opn = new Operacion();
                    foreach (int numFalla in numsFalla)
                    {
                        opn.RegistrarOperacion(DOMINIOS_OPERACION.AGENTE_NOTIFICACION_RECIBIDA, numFalla, codPersona);
                    }
                    resultado = true;
                }
            }
            catch (Exception ex)
            {
                PistaMgr.Instance.Error("WcfServicioSISFALLA.ConfirmarSinc()", ex);
            }
            return(resultado);
        }
예제 #2
0
        public static bool ImportarInforme(byte[] informe, out bool continuaImportando)
        {
            bool resultado = false;

            continuaImportando = false;
            if (informe != null)
            {
                informe = GZip.DesComprimir(informe);
                DataSet    ds        = Serializador.DeSerializar <DataSet>(informe);
                Importador imp       = new Importador();
                DataTable  dtInforme = ds.Tables["F_GF_INFORMEFALLA"];
                if (dtInforme != null)
                {
                    if (dtInforme.Rows.Count > 0)
                    {
                        long   estadoInforme = (long)dtInforme.Rows[0]["D_COD_ESTADO_INF"];
                        long   _pkCodPersona = (long )dtInforme.Rows[0]["PK_ORIGEN_INFORME"];
                        string ppp           = dtInforme.Rows[0]["PK_COD_FALLA"].ToString();
                        Console.WriteLine(ppp);
                        // si es informe revertido del mismo agente se debe descargar
                        if ((estadoInforme == (int)D_COD_ESTADO_INF.ENVIADO) ||
                            ((CNDC.BLL.Sesion.Instancia.EmpresaActual.PkCodPersona == _pkCodPersona) && (estadoInforme == (int)D_COD_ESTADO_INF.EN_ELABORACION)))
                        {
                            continuaImportando = true;
                            resultado          = imp.Importar(ds, ContenidoArchivo.Informe, true);
                        }
                    }
                }
            }
            return(resultado);
        }
예제 #3
0
        public DataTable GetAgentes()//TODO retornar agentes
        {
            byte[]    b         = WcfServicioMgr.Instancia.Servicio.GetTabla(Sesion.Instancia.TokenSession, "F_AP_PERSONA");
            DataTable resultado = Serializador.DeSerializar <DataTable>(b);

            return(resultado);
        }
예제 #4
0
        public DataTable GetTabla()
        {
            byte[]    b         = WcfServicioMgr.Instancia.Servicio.GetTabla(Sesion.Instancia.TokenSession, "F_GF_REGFALLA");
            DataTable resultado = Serializador.DeSerializar <DataTable>(b);

            return(resultado);
        }
예제 #5
0
 private void _btnIniciar_Click(object sender, EventArgs e)
 {
     _servicio = new WCF_SisFalla.ServicioSISFALLAClient();
     byte[] b = _servicio.GetRegistrosSincronizacion(FormLogin.TokenSesion, "F_GF_REGFALLA", 0, PkCodPersona);
     b = GZip.DesComprimir(b);
     _tablaRegFalla = Serializador.DeSerializar <DataTable>(b);
     _lblFallasInvolucradas.Text = _tablaRegFalla.Rows.Count + "";
     AbrirInforme();
     _timerEnvio.Enabled = true;
 }
예제 #6
0
        public Dictionary <string, decimal> TablesColumns()
        {
            Console.WriteLine("WcfClienteSinc ccc 3:: ");
            Dictionary <string, decimal> resultado = null;

            try
            {
                byte[] b = WcfServicioMgr.Instancia.Servicio.TablesColumns(Sesion.Instancia.TokenSession);
                resultado = Serializador.DeSerializar <Dictionary <string, decimal> >(b);
            }
            catch (Exception ex)
            {
                PistaMgr.Instance.Error("WcfDalSisFalla TablesColumns", ex);
                resultado = new Dictionary <string, decimal>();
            }
            return(resultado);
        }
예제 #7
0
        public DataTable GetSincronizacionInformesFalla()
        {
            Console.WriteLine("WcfClienteSinc ccc 1:: ");
            DataTable resultado = null;

            try {
                byte[] b = WcfServicioMgr.Instancia.Servicio.GetInformesFallaSincronizacion(Sesion.Instancia.TokenSession);
                PistaMgr.Instance.EscribirLog("WcfClienteSinc", "GetInformesFallaSincronizacion:" + b.Length.ToString(), TipoPista.Debug);
                resultado = Serializador.DeSerializar <DataTable>(b);
            }
            catch (Exception e)
            {
                PistaMgr.Instance.Error("GetSincronizacionInformesFalla upb ", e);
            }

            return(resultado);
        }
예제 #8
0
        private void ObtenerTablaDeServidor()
        {
            try
            {
                string nombreTabla = _tablas[_idx];
                _lblTabla.Text = nombreTabla;
                Solicitud s = new Solicitud();
                s.Inicio = DateTime.Now;
                s.Tabla  = nombreTabla;
                byte[] b = _servicio.GetTablaTest(_token, nombreTabla);
                s.Bytes = b.Length;
                b       = GZip.DesComprimir(b);
                DataTable tabla = Serializador.DeSerializar <DataTable>(b);
                _dgvDatos.DataSource = tabla;
                s.Columnas           = tabla.Columns.Count;
                s.Filas    = tabla.Rows.Count;
                _idx       = (_idx + 1) % _tablas.Count;
                s.Fin      = DateTime.Now;
                s.Duracion = s.Fin - s.Inicio;
                //_solicitudes.Insert(0, s);
                _solicitudes.Add(s);
                if (contadorSolicitudes == 0)
                {
                    _min = _max = s.Duracion;
                }
                else if (s.Duracion > _max)
                {
                    _max = s.Duracion;
                }
                else if (s.Duracion < _min)
                {
                    _min = s.Duracion;
                }

                contadorSolicitudes++;
                _lblSolicitudes.Text = contadorSolicitudes + "";
                _lblHoraCNDC.Text    = _servicio.GetStrFechaHora(_token);
                _lblMaximo.Text      = _max + "";
                _lblMinimo.Text      = _min + "";
            }
            catch (Exception ex)
            {
                EscribirLog(ex.ToString());
            }
        }
예제 #9
0
        public DataTable GetRegistrosSincronizacion(string nombreTabla, decimal version, long pkCodEmpresa)
        {
            Console.WriteLine("WcfClienteSinc ccc 2:: ");
            DataTable resultado = null;

            try
            {
                byte[] b = WcfServicioMgr.Instancia.Servicio.GetRegistrosSincronizacion(Sesion.Instancia.TokenSession, nombreTabla, version, pkCodEmpresa);
                b         = GZip.DesComprimir(b);
                resultado = Serializador.DeSerializar <DataTable>(b);
            }
            catch (Exception e)
            {
                PistaMgr.Instance.Error("GetRegistrosSincronizacion upb ", e);
            }

            return(resultado);
        }
예제 #10
0
        public Dictionary <string, decimal> GetMaxSincVer()
        {
            Console.WriteLine("WcfClienteSinc ccc 4:: ");
            Dictionary <string, decimal> resultado = null;

            try
            {
                Console.WriteLine("4eeeeeeeeeeee:: ");
                byte[] b = WcfServicioMgr.Instancia.Servicio.GetMaxSincVer(Sesion.Instancia.TokenSession);
                Console.WriteLine("5eeeeeeeeeeee:: ");
                resultado = Serializador.DeSerializar <Dictionary <string, decimal> >(b);
                Console.WriteLine("6eeeeeeeeeeee:: " + resultado.Count);
            }
            catch (Exception ex)
            {
                Console.WriteLine("3eeeeeeeeeeee:: ");
                PistaMgr.Instance.Error("WcfDalSisFalla GetMaxSincVer", ex);
                resultado = new Dictionary <string, decimal>();
            }
            return(resultado);
        }
예제 #11
0
        public bool Subir(string token, byte[] dataSet, string modulo)
        {
            bool resultado = true;

            modulo = modulo.ToUpper();

            if (modulo == "SISFALLA")
            {
                PistaMgr.Instance.Debug("WcfServicioSISFALLA.Subir()", "Iniciando..." + GetIPCliente());
                AsegurarConexion(token);
                AsegurarMgrsLocal();

                try
                {
                    dataSet = GZip.DesComprimir(dataSet);
                    DataSet ds = Serializador.DeSerializar <DataSet>(dataSet);
                    foreach (var mgr in _managersLocal)
                    {
                        if (ds.Tables.Contains(mgr.NombreTabla))
                        {
                            DataTable tabla = ds.Tables[mgr.NombreTabla];
                            PistaMgr.Instance.Debug("WcfServicioSISFALLA.Subir()", "mgr=" + mgr.NombreTabla + " Cant. Reg.:" + tabla.Rows.Count);
                            List <DataRow> rowsNuevos   = new List <DataRow>();
                            List <DataRow> rowsAntiguos = new List <DataRow>();

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

                            if (rowsNuevos.Count > 0)
                            {
                                PistaMgr.Instance.Debug("WcfServicioSISFALLA.Subir()", mgr.NombreTabla + " nuevos: " + rowsNuevos.Count);
                                mgr.Insertar(rowsNuevos);
                            }
                            if (rowsAntiguos.Count > 0)
                            {
                                PistaMgr.Instance.Debug("WcfServicioSISFALLA.Subir()", mgr.NombreTabla + " antiguos: " + rowsAntiguos.Count);
                                mgr.Actualizar(rowsAntiguos);
                            }
                        }
                        else
                        {
                            PistaMgr.Instance.Debug("WcfServicioSISFALLA.Subir()", "DataSet NO contiene tabla" + mgr.NombreTabla);
                        }
                    }

                    DataTable          tablaInforme  = ds.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.AGENTE_ENVIA_PRELIMINAR;
                    }
                    else if (informe.PkDCodTipoinforme == (long)PK_D_COD_TIPOINFORME.FINAL)
                    {
                        tipoOperacion = DOMINIOS_OPERACION.AGENTE_ENVIA_FINAL;
                    }

                    Operacion opn = new Operacion();
                    opn.RegistrarOperacion(tipoOperacion, informe.PkCodFalla, informe.PkOrigenInforme);
                }
                catch (Exception ex)
                {
                    PistaMgr.Instance.Error("WcfServicioSISFALLA.Subir()", ex);
                }

                PistaMgr.Instance.Debug("WcfServicioSISFALLA.Subir()", "Finalizando...");
            }

            return(resultado);
        }