//public virtual List<TEntidad> BuscarLista(CargarRelaciones cargarentidades)
        //{
        //    return this.Contexto.Consultar<TEntidad>(cargarentidades).ToList();
        //}

        public virtual List <TEntidad> BuscarLista(CargarRelaciones cargarentidades)
        {
            var             q                 = this.Contexto.Consultar <TEntidad>(cargarentidades);
            List <TEntidad> devuelve          = new List <TEntidad>();
            List <TEntidad> listaLote         = new List <TEntidad>();          //agregar de a 100 una listaLote de datos con take(100)
            int             cantidadRegistros = q.Count();                      //cantidad total de registros
            int             lote              = 0;                              //indice de busqueda

            while (lote < cantidadRegistros)                                    //el indice esta dentro de la cantidada de registros de la lista
            {
                listaLote = q.OrderBy(d => d.Id).Skip(lote).Take(100).ToList(); //salteamos los registros que ya ingresamos. (la primera vez salteamos 0 registros, i=0)
                devuelve.AddRange(listaLote);                                   //agregamos los 100 registros a la lista
                lote += 100;                                                    //incrementamos el skip
                listaLote.Clear();
            }
            var resto = (cantidadRegistros - lote); //esto es por si quedan registros sin ingresar de q.

            ///Ej:
            ///Agregamos 150;
            ///Los primeros 100 entran.
            ///Hacemos i+=100, se va a 200.
            ///200>150, sale del bucle while.
            ///(150 - 200) = -50
            ///-50 > 0 => NO
            if (devuelve.Count < cantidadRegistros)
            {
                listaLote.Clear();
                listaLote = q.OrderBy(d => d.Id).Skip(cantidadRegistros - resto).Take(resto).ToList(); //salteamos el total menos el resto y tomamos el resto.
                devuelve.AddRange(q);
            }
            return(devuelve);
        }
示例#2
0
        public virtual TDto BuscarSimple(object busqueda, CargarRelaciones cargarEntidades)
        {
            this.BuscadorEntidad.CargarEntidadesRelacionadas = cargarEntidades;
            var res = this.BuscadorEntidad.BuscarSimple(busqueda);

            return(Mapeador.EntidadToDto(res));
        }
示例#3
0
        public virtual IList <TDto> ObtenerLista(object param, CargarRelaciones cargarEntidades, string empresa)
        {
            ParameterOverride[] para = { new ParameterOverride("empresa", empresa), new ParameterOverride("entidad", typeof(TEntidad).Name.ToLower()) };
            var buscador             = (IBuscadorDTO <TEntidad, TDto>)FabricaNegocios.Instancia.Resolver(typeof(IBuscadorDTO <TEntidad, TDto>), para);

            return(buscador.BuscarLista(param, cargarEntidades).ToList());
        }
示例#4
0
        public virtual TDto ObtenerPorId(int id, CargarRelaciones cargarEntidades, string empresa)
        {
            ParameterOverride[] para = { new ParameterOverride("empresa", empresa), new ParameterOverride("entidad", typeof(TEntidad).Name.ToLower()) };
            var buscador             = (IBuscadorDTO <TEntidad, TDto>)FabricaNegocios.Instancia.Resolver(typeof(IBuscadorDTO <TEntidad, TDto>), para);
            var dto = buscador.BuscarSimple(id, cargarEntidades);

            return(dto);
        }
示例#5
0
        public virtual TDto ObtenerPorCodigo(object codigo, CargarRelaciones cargarEntidades, string empresa, ListaParametrosDeBusqueda parametros = null)
        {
            ParameterOverride[] para = { new ParameterOverride("empresa", empresa), new ParameterOverride("entidad", typeof(TEntidad).Name.ToLower()) };
            var buscador             = (IBuscadorDTO <TEntidad, TDto>)FabricaNegocios.Instancia.Resolver(typeof(IBuscadorDTO <TEntidad, TDto>), para);
            var dto = buscador.BuscarPorCodigo <TEntidad>(codigo, cargarEntidades, parametros == null ? null : parametros.Parametros);

            return(dto);
        }
 public BuscadorGenerico(string empresa, string entidad)
     : base(empresa, entidad)
 {
     this.CargarEntidadesRelacionadas = CargarRelaciones.CargarTodo;
     this.parameters    = new ParameterOverride[2];
     this.parameters[0] = new ParameterOverride("empresa", empresa);
     this.parameters[1] = new ParameterOverride("entidad", entidad);
 }
示例#7
0
        public virtual TDto BuscarPorCodigo <TMaestro>(object busqueda, CargarRelaciones cargarEntidades, List <Inteldev.Core.DTO.ParametrosMiniBusca> parametros = null)
            where TMaestro : EntidadMaestro
        {
            this.BuscadorEntidad.CargarEntidadesRelacionadas = cargarEntidades;
            //tengo que modificar el buscador entidad tambien.
            var mapeadorParametros = FabricaNegocios._Resolver <IMapeadorGenerico <Inteldev.Core.Modelo.ParametrosMiniBusca, Core.DTO.ParametrosMiniBusca> >();
            var result             = this.BuscadorEntidad.BuscarPorCodigo <TMaestro>(busqueda, mapeadorParametros.ToListEntidad(parametros)) as TEntidad;

            return(Mapeador.EntidadToDto(result));
        }
示例#8
0
 public PresentadorMiniBusca()
     : base()
 {
     this.CmdAceptar         = new RelayCommand(p => this.Aceptar(), p => this.PuedeAceptar());
     this.CmdCancelar        = new RelayCommand(p => this.Cancelar(), P => this.PuedeCancelar());
     this.CmdVerBuscador     = new RelayCommand(p => this.Buscar(), p => this.PuedeBuscar());
     this.CmdBuscarPorId     = new RelayCommand(p => this.BuscarPorId(p), p => this.PuedeBuscarPorId(p));
     this.CmdSeleccionarItem = new RelayCommand(p => this.Aceptar(), p => this.PuedeAceptar());
     this.CargaRelaciones    = CargarRelaciones.CargarEntidades;
 }
        /*public virtual List<TMaestro> BuscarDiferencia<TMaestro>(List<string> codigosImportados) where TMaestro : EntidadMaestro, new()
         * {
         *  var listaFiltrada = new List<TMaestro>();
         *  var listaCodigosLocal = this.Contexto.Consultar<TMaestro>(CargarRelaciones.NoCargarNada).Select(p => p.Codigo).ToList();
         *  //comparar
         *  foreach (var item in listaCodigosLocal)
         *  {
         *      if (!codigosImportados.Contains(item))
         *          listaFiltrada.Add(this.Contexto.Consultar<TMaestro>(CargarRelaciones.NoCargarNada).FirstOrDefault(p => p.Codigo == item));
         *  }
         *  //si encuentra
         *  //recorrer y buscarla en codigos. si no esta buscar la entidad completa y agregarla a una lista y luego devolver la lista
         *  return listaFiltrada;
         * }*/

        public virtual List <TEntidad> BuscarLista(MethodCallExpression busqueda, CargarRelaciones cargarEntidades)
        {
            if (busqueda != null)
            {
                return(this.Contexto.Consultar <TEntidad>(cargarEntidades).Provider.CreateQuery <TEntidad>(busqueda).ToList());
            }
            else
            {
                return(null);
            }
        }
示例#10
0
        public TEntidad BuscarPorId <TEntidad>(int Id, CargarRelaciones cargarEntidadesRelacionadas) where TEntidad : EntidadBase
        {
            //var q = this.Set<TEntidad>().AsNoTracking<TEntidad>().Where(e => e.Id == Id);
            var q = this.Set <TEntidad>().Where(e => e.Id == Id);

            if (cargarEntidadesRelacionadas == CargarRelaciones.NoCargarNada)
            {
                return(q.FirstOrDefault());
            }
            else
            {
                return(this.IncluirRelaciones <TEntidad>(q, cargarEntidadesRelacionadas).FirstOrDefault());
            }
        }
示例#11
0
        public TEntidad BuscarPorCodigo <TEntidad>(string codigo, CargarRelaciones cargarEntidadesRelacionadas)
            where TEntidad : EntidadMaestro
        {
            //var q = this.Set<TEntidad>().AsNoTracking<TEntidad>().Where(p => p.Codigo == codigo);
            var q = this.Set <TEntidad>().Where(p => p.Codigo == codigo);

            if (cargarEntidadesRelacionadas == CargarRelaciones.NoCargarNada)
            {
                return(q.FirstOrDefault());
            }
            else
            {
                return(this.IncluirRelaciones <TEntidad>(q, cargarEntidadesRelacionadas).FirstOrDefault());
            }
        }
示例#12
0
        public override DTO.Usuarios.Permiso BuscarSimple(object busqueda, CargarRelaciones cargarEntidades)
        {
            int id = 0;

            int.TryParse(busqueda.ToString(), out id);
            //id del permiso que se selecciono en el buscador de la Tabla de Perfiles de usuario.
            //Busqueda sería ItemSeleccionado de BuscadorInicial del Formulario
            var permiso = this.BuscadorEntidad.BuscarSimple(id);

            Inteldev.Core.DTO.Usuarios.Permiso dto = null;
            if (permiso != null)
            {
                dto = Inteldev.Core.Negocios.Mapeador.Mapeador.Instancia.EntidadToDto <Inteldev.Core.Modelo.Usuarios.Permiso, Inteldev.Core.DTO.Usuarios.Permiso>(permiso);
            }
            return(dto);
        }
示例#13
0
        public IQueryable <TEntidad> Consultar <TEntidad>(CargarRelaciones cargarEntidadesRelacionadas) where TEntidad : EntidadBase
        {
            //var q = this.Set<TEntidad>().AsNoTracking<TEntidad>();
            var q = this.Set <TEntidad>();

            ((IObjectContextAdapter)this).ObjectContext.CommandTimeout = 600;

            if (cargarEntidadesRelacionadas == CargarRelaciones.NoCargarNada)
            {
                return(q);
            }
            else
            {
                IQueryable <TEntidad> query = this.IncluirRelaciones <TEntidad>(q, cargarEntidadesRelacionadas);
                return(query);
            }
        }
示例#14
0
        public override OrdenDeCompra BuscarSimple(object busqueda, CargarRelaciones cargarEntidades)
        {
            var result = this.BuscadorEntidad.BuscarSimple(busqueda);

            ParameterOverride[] parameters = { new ParameterOverride("empresa", empresa), new ParameterOverride("entidad", "ListaDePrecios") };
            var buscaLista = (IBuscadorListaDePrecios)FabricaNegocios.Instancia.Resolver(typeof(IBuscadorListaDePrecios), parameters);
            int id         = 0;

            int.TryParse(result.ProveedorId.ToString(), out id);
            result.ListaDePrecios = buscaLista.obtenerListaProveedor(id, true);
            parameters[1]         = new ParameterOverride("entidad", "Articulo");
            var buscaArticulo = (IBuscadorArticulo)FabricaNegocios.Instancia.Resolver(typeof(IBuscadorArticulo), parameters);

            parameters[1] = new ParameterOverride("entidad", "ObjetivosDeCompra");
            var buscaObjetivos = (IBuscadorObjetivos)FabricaNegocios.Instancia.Resolver(typeof(IBuscadorObjetivos), parameters);
            var articulos      = buscaArticulo.obtenerArticulosProveedor(id);
            var objetivos      = buscaObjetivos.obtenerObjetivosProveedor(id);
            //var articulos = new List<Articulo>();
            var mapper = (IMapeadorOrdenDeCompra)this.Mapeador;

            return(mapper.EntidadToDto(result, articulos, objetivos));
        }
 /// <summary>
 /// Consulta toda una entidad sin cargar las entidades relacionadas.
 /// </summary>
 /// <returns>la consulta tipo iquereable</returns>
 public virtual IQueryable <TEntidad> ConsultaSimple(CargarRelaciones cargarEntidades)
 {
     return(this.Contexto.Consultar <TEntidad>(cargarEntidades));
 }
示例#16
0
        public IQueryable <TEntidad> IncluirRelaciones <TEntidad>(IQueryable <TEntidad> objeto, CargarRelaciones cargarRelaciones) where TEntidad : EntidadBase
        {
            this.antirecursivo = new List <Type>();
            var tipoEntidad = typeof(TEntidad);
            var propiedad   = tipoEntidad.GetProperties();

            foreach (var prop in propiedad)
            {
                this.antirecursivo.Clear();
                this.antirecursivo.Add(tipoEntidad);

                //es una entidad
                if (prop.PropertyType.GetProperty("Id") != null &&
                    (cargarRelaciones == CargarRelaciones.CargarTodo || cargarRelaciones == CargarRelaciones.CargarEntidades) &&
                    prop.GetCustomAttribute <NotMappedAttribute>() == null)
                {
                    objeto = objeto.Include(prop.Name);
                    if (prop.GetCustomAttribute <UnoAUno>() != null)
                    {
                        var propiedadesHijo = prop.PropertyType.GetProperties();
                        foreach (var item in propiedadesHijo)
                        {
                            if (item.PropertyType.GetProperty("Id") != null)
                            {
                                var incluir = prop.Name + "." + item.Name;
                                objeto = objeto.Include(incluir);
                            }
                        }
                    }
                }
                else
                {
                    //es una coleccion
                    if (prop.PropertyType.GetProperty("Count") != null &&
                        (cargarRelaciones == CargarRelaciones.CargarCollecciones ||
                         cargarRelaciones == CargarRelaciones.CargarTodo) &&
                        (prop.GetCustomAttributes(typeof(NotMappedAttribute), true).FirstOrDefault() == null))
                    {
                        //es muchos a muchos
                        if (prop.GetCustomAttributes(typeMuchosAMuchos, true).FirstOrDefault() != null || prop.GetCustomAttributes(typeNoIncluirColecciones, true).FirstOrDefault() != null)
                        {
                            objeto = objeto.Include(prop.Name);
                        }
                        else
                        {
                            objeto = IncluirColecciones <TEntidad>(objeto, prop, "");
                        }
                    }
                }
            }
            return(objeto);
        }
示例#17
0
 public TMaestro BuscarPorCodigo <TMaestro>(String busqueda, CargarRelaciones cargarEntidadesRelacionadas)
     where TMaestro : EntidadMaestro
 {
     //return this.contextos.FirstOrDefault().BuscarPorCodigo<TMaestro>(busqueda, cargarEntidadesRelacionadas);
     return(this.ObtenerContextos <TMaestro>().FirstOrDefault().BuscarPorCodigo <TMaestro>(busqueda, cargarEntidadesRelacionadas));
 }
示例#18
0
 public TEntidad BuscarPorId(int id, CargarRelaciones cargarEntidades)
 {
     //return this.contextos.FirstOrDefault().BuscarPorId<TEntidad>(id, cargarEntidades);
     return(this.ObtenerContextos <TEntidad>().FirstOrDefault().BuscarPorId <TEntidad>(id, cargarEntidades));
 }
		public override List<Servicios.DTO.Articulos.Subsector> BuscarLista(object param, CargarRelaciones cargarEntidades)
		{
			int id = 0;
			int.TryParse(param.ToString(), out id);
			return this.Mapeador.ToListDto(this.BuscadorEntidad.BuscarLista(e => e.Sector.Id == id,cargarEntidades).ToList());
		}
示例#20
0
 public IQueryable <TEnt> Consultar <TEnt>(CargarRelaciones cargarEntidadesRelacionadas)
     where TEnt : EntidadBase
 {
     return(this.contextos.FirstOrDefault().Consultar <TEnt>(cargarEntidadesRelacionadas));
     //return this.ObtenerContextos<TEnt>().FirstOrDefault().Consultar<TEnt>(cargarEntidadesRelacionadas);
 }
 public virtual List <TEntidad> BuscarLista(Expression <Func <TEntidad, bool> > busqueda, CargarRelaciones cargarEntidades)
 {
     return(this.Contexto.Consultar <TEntidad>(cargarEntidades).Where(busqueda).ToList());
 }
示例#22
0
 public new List <Inteldev.Fixius.Servicios.DTO.Proveedores.ListaDePrecios> BuscarLista(object param, CargarRelaciones cargarEntidades)
 {
     return(base.BuscarLista(param, cargarEntidades));
 }
示例#23
0
 public new Inteldev.Fixius.Servicios.DTO.Proveedores.ListaDePrecios BuscarPorCodigo <TMaestro>(object busqueda, CargarRelaciones cargarEntidades) where TMaestro : Core.Modelo.EntidadMaestro
 {
     return(base.BuscarPorCodigo <TMaestro>(busqueda, cargarEntidades));
 }
示例#24
0
 public new Inteldev.Fixius.Servicios.DTO.Proveedores.ListaDePrecios BuscarSimple(object busqueda, CargarRelaciones cargarEntidades)
 {
     return(base.BuscarSimple(busqueda, cargarEntidades));
 }
示例#25
0
 public virtual List <TDto> BuscarLista(object param, CargarRelaciones cargarEntidades)
 {
     return(this.Mapeador.ToListDto(this.BuscadorEntidad.BuscarLista(e => e.Id > 0, cargarEntidades)).ToList());
 }