示例#1
0
        protected override List <NivelEducativoPorTipoEducacionModel> ResolveCore(DireccionDeNivel source)
        {
            List <NivelEducativoPorTipoEducacionModel> listado = new List <NivelEducativoPorTipoEducacionModel>();
            NivelEducativoPorTipoEducacionModel        item;

            if (source.NivelesEducativos != null && source.NivelesEducativos.Count > 0)
            {
                var tipoEducacion = source.TipoEducacion;
                foreach (var nivelEducativo in source.NivelesEducativos)
                {
                    item = new NivelEducativoPorTipoEducacionModel();
                    item.TipoEducacion  = tipoEducacion;
                    item.NivelEducativo = Mapper.Map <NivelEducativo, NivelEducativoModel>(nivelEducativo);
                    listado.Add(item);
                }
            }
            return(listado);
        }
示例#2
0
        protected override TipoEducacionEnum?ResolveCore(EmpresaBase source)
        {
            switch (source.TipoEmpresa)
            {
            case TipoEmpresaEnum.ESCUELA_MADRE:
            {
                Escuela escuela = source as Escuela;
                if (escuela != null)
                {
                    return(escuela.TipoEducacion);
                }
            }
            break;

            case TipoEmpresaEnum.ESCUELA_ANEXO:
            {
                EscuelaAnexo escuelaAnexo = source as EscuelaAnexo;
                if (escuelaAnexo != null)
                {
                    return(escuelaAnexo.TipoEducacion);
                }
            }
            break;

            case TipoEmpresaEnum.DIRECCION_DE_NIVEL:
            {
                DireccionDeNivel direccionDeNivel = source as DireccionDeNivel;
                if (direccionDeNivel != null)
                {
                    return(direccionDeNivel.TipoEducacion);
                }
            }
            break;
            }
            return(null);
        }
示例#3
0
        /// <summary>
        /// Obtiene una lista de empresas segun filtro básico
        /// </summary>
        /// <param name="codigoEmpresa">Codigo de empresa</param>
        /// <param name="nombreEmpresa">Nombre de empresa</param>
        /// <param name="idLocalidad">Pertenece al domicilio</param>
        /// <param name="barrio">Pertenece al domicilio</param>
        /// <param name="calle">Pertenece al domicilio</param>
        /// <param name="altura">Pertenece al domicilio</param>
        /// <param name="estadoEmpresaEnum">Estado de la empresa</param>
        /// <returns>Devuelve una lista de empresas que cumplan con los parametros de busqueda. </returns>
        public List <EmpresaBase> GetByFiltrosBasico(string codigoEmpresa, string nombreEmpresa, int?idLocalidad, string barrio, string calle, int?altura, List <EstadoEmpresaEnum> estadoEmpresaEnum, List <TipoEmpresaFiltroBusquedaEnum> empresaFiltro, int?idDireccionDeNivelActual, int?idEmpresaUsuarioLogueado)
        {
            var listaTipoEmpresaPermitidos = new List <TipoEmpresaEnum>();
            var empresa          = new EmpresaBase();
            var domicilio        = new Domicilio();
            var direccionDeNivel = new DireccionDeNivel();
            var empresaRegistro  = new EmpresaBase();
            var query            = Session.QueryOver <EmpresaBase>(() => empresa);

            query.AndNot(
                x =>
                x.TipoEmpresa == TipoEmpresaEnum.ESCUELA_MADRE || x.TipoEmpresa == TipoEmpresaEnum.ESCUELA_ANEXO);

            if (idEmpresaUsuarioLogueado.HasValue)
            {
                query.JoinQueryOver(x => x.EmpresaRegistro, () => empresaRegistro);
                query.And(x => empresaRegistro.Id == idEmpresaUsuarioLogueado);
            }
            if (empresaFiltro != null && empresaFiltro.Count > 0)
            {
                if (!empresaFiltro.Contains(TipoEmpresaFiltroBusquedaEnum.TODAS))
                {
                    if (empresaFiltro.Contains(TipoEmpresaFiltroBusquedaEnum.MINISTERIO))
                    {
                        listaTipoEmpresaPermitidos.Add(TipoEmpresaEnum.MINISTERIO);
                    }
                    if (empresaFiltro.Contains(TipoEmpresaFiltroBusquedaEnum.DIRECCION_DE_NIVEL))
                    {
                        listaTipoEmpresaPermitidos.Add(TipoEmpresaEnum.DIRECCION_DE_NIVEL);
                    }
                    if (empresaFiltro.Contains(TipoEmpresaFiltroBusquedaEnum.ESCUELA_MADRE))
                    {
                        listaTipoEmpresaPermitidos.Add(TipoEmpresaEnum.ESCUELA_MADRE);
                    }
                    if (empresaFiltro.Contains(TipoEmpresaFiltroBusquedaEnum.ESCUELA_ANEXO))
                    {
                        listaTipoEmpresaPermitidos.Add(TipoEmpresaEnum.ESCUELA_ANEXO);
                    }
                    if (empresaFiltro.Contains(TipoEmpresaFiltroBusquedaEnum.DIRECCION_DE_INFRAESTRUCTURA))
                    {
                        listaTipoEmpresaPermitidos.Add(TipoEmpresaEnum.DIRECCION_DE_INFRAESTRUCTURA);
                    }
                    if (empresaFiltro.Contains(TipoEmpresaFiltroBusquedaEnum.DIRECCION_DE_RECURSOS_HUMANOS))
                    {
                        listaTipoEmpresaPermitidos.Add(TipoEmpresaEnum.DIRECCION_DE_RECURSOS_HUMANOS);
                    }
                    if (empresaFiltro.Contains(TipoEmpresaFiltroBusquedaEnum.DIRECCION_DE_SISTEMAS))
                    {
                        listaTipoEmpresaPermitidos.Add(TipoEmpresaEnum.DIRECCION_DE_SISTEMAS);
                    }
                    if (empresaFiltro.Contains(TipoEmpresaFiltroBusquedaEnum.DIRECCION_DE_TESORERIA))
                    {
                        listaTipoEmpresaPermitidos.Add(TipoEmpresaEnum.DIRECCION_DE_TESORERIA);
                    }
                    if (empresaFiltro.Contains(TipoEmpresaFiltroBusquedaEnum.SECRETARIA))
                    {
                        listaTipoEmpresaPermitidos.Add(TipoEmpresaEnum.SECRETARIA);
                    }



                    query.And(x => x.TipoEmpresa.IsIn(listaTipoEmpresaPermitidos));
                }
            }

            if (!string.IsNullOrEmpty(nombreEmpresa))
            {
                query.And(x => x.Nombre.IsLike(nombreEmpresa));
            }

            if (!string.IsNullOrEmpty(codigoEmpresa))
            {
                query.And(x => x.CodigoEmpresa.IsLike(codigoEmpresa));
            }
            if (idDireccionDeNivelActual.HasValue)
            {
                query.JoinQueryOver <DireccionDeNivel>(x => x.TipoDireccionNivel, () => direccionDeNivel);
                query.And(() => direccionDeNivel.Id == idDireccionDeNivelActual);
            }

            var empresaBases = (List <EmpresaBase>)query.List <EmpresaBase>();

            //TODO mejorar el filtrado por domicilio; hasta ahora se obtiene el listado de empresa y se filtra recien ahi (pesimo!)
            if (idLocalidad.HasValue || !string.IsNullOrEmpty(barrio) || !string.IsNullOrEmpty(calle) || altura.HasValue)
            {
                barrio = !string.IsNullOrEmpty(barrio) ? barrio.ToUpper() : string.Empty;
                calle  = !string.IsNullOrEmpty(calle) ? calle.ToUpper() : string.Empty;

                foreach (EmpresaBase emp in empresaBases)
                {
                    emp.Domicilio = new DaoDomicilio().GetByEntidad(emp.VinculoDomicilio, emp.Id);
                }
                empresaBases = (List <EmpresaBase>)empresaBases.Where(x => x.Domicilio.Localidad.Id == idLocalidad &&
                                                                      (string.IsNullOrEmpty(barrio) ||
                                                                       x.Domicilio.Barrio.Nombre.Contains(barrio)) &&
                                                                      (string.IsNullOrEmpty(calle) ||
                                                                       x.Domicilio.Calle.Nombre.Contains(calle)) &&
                                                                      (!altura.HasValue || x.Domicilio.Altura == altura))
                               .ToList();
            }

            if (estadoEmpresaEnum != null && estadoEmpresaEnum.Count > 0)
            {
                return(empresaBases.Where(x => estadoEmpresaEnum.Any(p => p == x.EstadoEmpresa)).ToList());
            }

            return(empresaBases);
        }