コード例 #1
0
        public List <DtoEmpresaConsultaEdificio> GetEmpresasByEdificios(List <int> listaEdificios)
        {
            //todo javier revisar el futuro cercano
            var      res      = new List <DtoEmpresaConsultaEdificio>();
            Edificio edificio = null;
            VinculoEmpresaEdificio vinculos = null;
            var empresa = new DtoEmpresaConsultaEdificio();

            var query1 = Session.QueryOver <EmpresaBase>()
                         .And(x => x.TipoEmpresa != TipoEmpresaEnum.ESCUELA_MADRE && x.TipoEmpresa != TipoEmpresaEnum.ESCUELA_ANEXO)
                         .JoinQueryOver <VinculoEmpresaEdificio>(x => x.VinculoEmpresaEdificio, () => vinculos)

                         .And(() => vinculos.Edificio.Id.IsIn(listaEdificios))
                         .SelectList(list => list
                                     .Select(x => x.Id).WithAlias(() => empresa.Id)
                                     .Select(x => x.Estado).WithAlias(() => empresa.EstadoEmpresa)
                                     .Select(x => x.Nombre).WithAlias(() => empresa.Nombre)
                                     .Select(x => x.TipoEmpresa).WithAlias(() => empresa.TipoEmpresa)
                                     .Select(x => x.CodigoEmpresa).WithAlias(() => empresa.CodigoEmpresa))
                         .TransformUsing(Transformers.AliasToBean <DtoEmpresaConsultaEdificio>());

            var query2 = Session.QueryOver <Escuela>()
                         .JoinQueryOver <VinculoEmpresaEdificio>(x => x.VinculoEmpresaEdificio, () => vinculos)
                         .And(() => vinculos.Edificio.Id.IsIn(listaEdificios))
                         .SelectList(list => list
                                     .Select(x => x.Id).WithAlias(() => empresa.Id)
                                     .Select(x => x.Estado).WithAlias(() => empresa.EstadoEmpresa)
                                     .Select(x => x.Nombre).WithAlias(() => empresa.Nombre)
                                     .Select(x => x.TipoEmpresa).WithAlias(() => empresa.TipoEmpresa)
                                     .Select(x => x.CodigoEmpresa).WithAlias(() => empresa.CodigoEmpresa)
                                     .Select(x => x.CUE).WithAlias(() => empresa.CUE))
                         .TransformUsing(Transformers.AliasToBean <DtoEmpresaConsultaEdificio>());

            var query3 = Session.QueryOver <EscuelaAnexo>()
                         .JoinQueryOver <VinculoEmpresaEdificio>(x => x.VinculoEmpresaEdificio, () => vinculos)
                         .And(() => vinculos.Edificio.Id.IsIn(listaEdificios))
                         .SelectList(list => list
                                     .Select(x => x.Id).WithAlias(() => empresa.Id)
                                     .Select(x => x.Estado).WithAlias(() => empresa.EstadoEmpresa)
                                     .Select(x => x.Nombre).WithAlias(() => empresa.Nombre)
                                     .Select(x => x.TipoEmpresa).WithAlias(() => empresa.TipoEmpresa)
                                     .Select(x => x.CodigoEmpresa).WithAlias(() => empresa.CodigoEmpresa)
                                     .Select(x => x.CUE).WithAlias(() => empresa.CUE))
                         .TransformUsing(Transformers.AliasToBean <DtoEmpresaConsultaEdificio>());

            res.AddRange((List <DtoEmpresaConsultaEdificio>)query1.List <DtoEmpresaConsultaEdificio>());
            res.AddRange((List <DtoEmpresaConsultaEdificio>)query2.List <DtoEmpresaConsultaEdificio>());
            res.AddRange((List <DtoEmpresaConsultaEdificio>)query3.List <DtoEmpresaConsultaEdificio>());

            return(res.Distinct().ToList <DtoEmpresaConsultaEdificio>());
        }
コード例 #2
0
        /// <summary>
        /// VinculoEmpresaEdificioRegla realiza todas las validaciones de los vínculos y según el parámetro persiste o no
        /// </summary>
        /// <param name="modelo">Modelo del vínculo a guardar </param>
        /// <returns>Modelo del Vínculo guardado</returns>
        private List <VinculoEmpresaEdificioModel> VinculoEmpresaEdificioRegla(RegistrarVinculoEmpresaEdificioModel modelo, bool persist)
        {
            ValidarVinculoEmpresaEdificioSave(modelo);
            int idEmpresa;

            int.TryParse(modelo.Empresa, out idEmpresa);
            var listaVinculos    = new List <VinculoEmpresaEdificio>();
            var listadoDeErrores = new StringBuilder();

            if (idEmpresa > 0)
            {
                var empresa = DaoEmpresa.GetById(idEmpresa);

                foreach (var idEdificio in modelo.ListaEdificios)
                {
                    if (DaoVinculoEmpresaEdificio.VerificarVinculoEmpresaEdificio(idEdificio, idEmpresa))
                    {
                        var edificio = DaoEdificio.GetById(idEdificio);
                        var vinculo  = new VinculoEmpresaEdificio();
                        vinculo.Empresa  = empresa;
                        vinculo.Edificio = edificio;
                        vinculo.Estado   = EstadoVinculoEmpresaEdificioEnum.ACTIVO;
                        if (modelo.FechaDesde != null)
                        {
                            vinculo.FechaDesde = modelo.FechaDesde.Value;
                        }
                        vinculo.Observacion        = modelo.Observacion;
                        vinculo.DeterminaDomicilio = false;
                        if (persist)
                        {
                            vinculo = DaoVinculoEmpresaEdificio.SaveOrUpdate(vinculo);
                        }
                        listaVinculos.Add(vinculo);
                    }
                    else
                    {
                        var edificio = DaoEdificio.GetById(idEdificio);
                        listadoDeErrores.AppendLine("El vinculo con el edificio " + edificio.IdentificadorEdificio +
                                                    " ya existe");
                    }
                }
            }
            if (!String.IsNullOrEmpty(listadoDeErrores.ToString()))
            {
                throw new BaseException(listadoDeErrores.ToString());
            }
            return(AutoMapper.Mapper.Map <List <VinculoEmpresaEdificio>, List <VinculoEmpresaEdificioModel> >(listaVinculos));
        }
コード例 #3
0
        private void ValidarVinculoEmpresaEdificioDelete(VinculoEmpresaEdificio entidad)
        {
            var listadoDeErrores = new StringBuilder();

            if (entidad.Empresa == null || (entidad.Empresa.Estado != EstadoEmpresaEnum.AUTORIZADA && entidad.Empresa.Estado != EstadoEmpresaEnum.EN_PROCESO_DE_CIERRE_AUTORIZADO_NOTIFICADO))
            {
                throw new ApplicationException(VinculoEmpresaEdificioResource.ESTADO_EMPRESA);
            }
            var vinculos = DaoVinculoEmpresaEdificio.GetVinculoEmpresaEdificioByFilters(entidad.Empresa.CodigoEmpresa, null);

            if (vinculos == null || vinculos.Count == 0)
            {
                listadoDeErrores.AppendLine(VinculoEmpresaEdificioResource.VINCULO_NO_EXISTE);
            }
            // pregunto si el vinculo es el activo para esa empresa, ya que debe haber un vinculo que coincida con el domicilio de la misma
            if (entidad.DeterminaDomicilio)
            {
                listadoDeErrores.AppendLine(VinculoEmpresaEdificioResource.MISMO_DOMICILIO);
            }
            if (!String.IsNullOrEmpty(listadoDeErrores.ToString()))
            {
                throw new BaseException(listadoDeErrores.ToString());
            }
        }
コード例 #4
0
 public virtual void AddVinculoEdificio(VinculoEmpresaEdificio entidad)
 {
     VinculoEmpresaEdificio.Add(entidad);
     entidad.Empresa = this;
 }