예제 #1
0
        private Entity.Enrutador.EEnrutar CargarLista(int idtransaccion, Operacion operacion)
        {
            Entity.Enrutador.EEnrutar enrutar = new Entity.Enrutador.EEnrutar {
                Transaccion = idtransaccion, TipoOperacion = operacion
            };
            Entity.Enrutador.EDestino destino = new Entity.Enrutador.EDestino {
                TipoDestino = Destinos.ConectorFS, EsObjeto = true, Persiste = false, Conexion = System.IO.Path.GetTempPath()
            };

            enrutar.Destinos.Add(destino);

            return(enrutar);
        }
예제 #2
0
        /// <summary>
        /// Carga en memoria el listado de tipos de transacción.
        /// </summary>
        public void CargarListaTransacciones()
        {
            Assembly asm  = Assembly.GetExecutingAssembly();
            DataSet  ds   = new DataSet();
            int      ntra = 0;

            try
            {
                //ds.ReadXml(asm.GetManifestResourceStream("Data.MapaTransaciones.xml"));
                string spath = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath;
                if (string.IsNullOrEmpty(spath))
                {
                    spath = System.AppDomain.CurrentDomain.BaseDirectory;
                }
                if (spath.EndsWith("\\"))
                {
                    spath = spath.Substring(0, spath.Length - 1);
                }
                ds.ReadXml(spath + "\\MapaTransaciones.xml");
            }
            catch (Exception ex)
            {
                Logger.ErrorLog.RegErrorDB(Logger.NivelDeError.Seis, "999", this.ToString(), "MapaTransaciones.xml", ex.StackTrace);
            }
            DataTable dt = ds.Tables["proveedor"];

            if (dt != null)
            {
                if (dt.Rows.Count > 0)
                {
                    if (Proveedores.Count > 0)
                    {
                        Proveedores.Clear();
                    }

                    foreach (DataRow row in dt.Rows)
                    {
                        EProvider proveedor = new EProvider();

                        proveedor.IdProvider       = row.Field <string>("id");
                        proveedor.DataProvider     = row.Field <string>("tipoproveedor");
                        proveedor.ConnectionString = row.Field <string>("cadenaconexion");
                        proveedor.TipoDestino      = (Destinos)System.Enum.Parse(
                            typeof(Destinos),
                            row.Field <string>("tipodestino"),
                            true);

                        proveedores.Add(proveedor);
                    }
                    dt.Dispose();
                }
            }

            dt = ds.Tables["transaccion"];

            if (dt != null)
            {
                if (dt.Rows.Count > 0)
                {
                    if (transacciones.Count > 0)
                    {
                        transacciones.Clear();
                    }

                    Operacion operacion = Operacion.NoDefinido;
                    short     evento    = 0;

                    foreach (DataRow row in dt.Rows)
                    {
                        if (int.TryParse(row["codigo"].ToString(), out ntra))
                        {
                            operacion = Operacion.NoDefinido;
                            evento    = 0;
                            try
                            {
                                operacion = (Operacion)System.Enum.Parse(
                                    typeof(Operacion),
                                    row["operacion"].ToString(),
                                    true);
                                short.TryParse(row.Field <string>("evento"), out evento);
                            }
                            catch (Exception)
                            {
                            }

                            Entity.Enrutador.EEnrutar enrutar = new Entity.Enrutador.EEnrutar
                            {
                                Transaccion   = ntra,
                                TipoOperacion = operacion,
                                Evento        = evento
                            };
                            DataRow[] rows = ds.Tables["destino"].Select("transaccion_id=" + row["transaccion_id"].ToString());

                            foreach (DataRow rowdestino in rows)
                            {
                                Entity.Enrutador.EDestino destino = new Entity.Enrutador.EDestino();

                                Entity.Enrutador.EProvider proveedor = Proveedores.Find(delegate(EProvider e) { return(e.IdProvider == rowdestino.Field <string>("conexion")); });
                                destino.TipoDestino = proveedor.TipoDestino;
                                if (rowdestino.Table.Columns.Contains("conexion"))
                                {
                                    destino.Conexion = rowdestino["conexion"].ToString();
                                }
                                if (rowdestino.Table.Columns.Contains("tiempoespera"))
                                {
                                    destino.TiempoEspera = int.Parse(rowdestino["tiempoespera"].ToString());
                                }
                                if (rowdestino.Table.Columns.Contains("reintentos"))
                                {
                                    destino.Reintentos = int.Parse(rowdestino["reintentos"].ToString());
                                }
                                if (rowdestino.Table.Columns.Contains("tiemporeintento"))
                                {
                                    destino.TiempoReintento = int.Parse(rowdestino["tiemporeintento"].ToString());
                                }
                                if (rowdestino.Table.Columns.Contains("esobjeto"))
                                {
                                    destino.EsObjeto = Convert.ToBoolean(rowdestino["esobjeto"].ToString());
                                }
                                if (rowdestino.Table.Columns.Contains("persiste"))
                                {
                                    destino.Persiste = Convert.ToBoolean(rowdestino["persiste"].ToString());
                                }

                                // Acceso a carpetas de red.
                                if (rowdestino.Table.Columns.Contains("usuario"))
                                {
                                    destino.Usuario = rowdestino["usuario"].ToString();
                                }
                                if (rowdestino.Table.Columns.Contains("clave"))
                                {
                                    destino.Clave = rowdestino["clave"].ToString();
                                }
                                if (rowdestino.Table.Columns.Contains("dominio"))
                                {
                                    destino.Dominio = rowdestino["dominio"].ToString();
                                }

                                enrutar.Destinos.Add(destino);
                            }

                            transacciones.Add(enrutar);
                        }
                    }

                    transacciones.Add(CargarLista(998, Operacion.Registrar));
                    transacciones.Add(CargarLista(999, Operacion.Obtener));
                }
            }
        }