Beispiel #1
0
        public void TestMetho6()
        {
            ComunRegistro comunRegistro = new ComunRegistro();

            EPertenenciaRequest parametros = new EPertenenciaRequest();

            parametros.dre = new EIged {
                IdIged = 1, CodIged = "010000"
            };
            parametros.ugelModificar = new EIged {
                IdIged = 28, CodIged = "010002"
            };
            parametros.CodTerminoPertenencia = 1;


            var result = comunRegistro.ObtenerOpcionesJurisdiccionPertenencia(parametros);

            //Assert.AreNotEqual(result.ListaEventoRegistral.Count(), 0);
            //Assert.AreNotEqual(result.ListaNaturaleza.Count(), 0);
            //Assert.IsTrue(result.ListaTipoIged.Count() > 0);
            Assert.IsNotNull(result.ListaProvincias);
        }
Beispiel #2
0
        public EOpcionesJurisdiccionPertenencia ObtenerOpcionesJurisdiccionPertenencia(EPertenenciaRequest ePertenenciaRequest)
        {
            EOpcionesJurisdiccionPertenencia eOpcionesJurisdiccionPertenencia = new EOpcionesJurisdiccionPertenencia();
            IEnumerable <EJurisdiccion>      jurisdiccionUgeles = null;
            IEnumerable <int> IdProvinciasAsignadas;

            var region = comunRegistroRepositorio.ObtenerRegionPorDre(ePertenenciaRequest.dre.IdIged ?? default(int));
            var provinciasPorRegion = comunRegistroRepositorio.ObtenerProvinciasPorRegion(region.CodUbigeo);

            jurisdiccionUgeles = comunRegistroRepositorio.ObtenerJurisdiccionDeUgelesPorDre(ePertenenciaRequest.dre.IdIged ?? default(int));

            // PROVINCIAS ------------------------------------------------------------------------------------------------------
            // -----------------------------------------------------------------------------------------------------------------
            IdProvinciasAsignadas = (from a in jurisdiccionUgeles
                                     where a.Ubigeo.TipoUbigeo.CodTipoUbigeo == 2 //Provincias (Aqui crear numeral)
                                     & a.CodTerminoPertenencia == 1               //COMPRENDE (Aqui va numeral
                                     select a.Ubigeo.IdUbigeo).ToList();


            // Lista de provincias no asignadas con el termino "Comprende"
            var varp1_provinciasNoAsignadasComprende = (from a in provinciasPorRegion
                                                        where !IdProvinciasAsignadas.Contains(a.IdUbigeo)
                                                        select a).ToList();

            // Obtener todos los distritos de las provincias no asignadas.
            var varp2_distritosNoAsignadosDeVar1 = comunRegistroRepositorio.ObtenerDistritosPorListaProvincias(varp1_provinciasNoAsignadasComprende);

            //Obtener todos los CCPP de los distritos de las provincias no asignadas.
            //var varp3_ccppNoAsignadosDeVar2 = comunRegistroRepositorio.ObtenerCCPPPorListaDistrito(varp2_distritosNoAsignadosDeVar1.ToList());


            //DISTRITOS -----------------------------------------------------------------------------------------------------------
            //---------------------------------------------------------------------------------------------------------------------

            //Distrito asignados con comprende e incluye, se tiene que restar del total de distritos y tambien restar sus centros poblados del total de centros poblados.
            var vard1_distritosAsignados = (from a in jurisdiccionUgeles
                                            where a.Ubigeo.TipoUbigeo.CodTipoUbigeo == 3                     //Distritos (Aqui crear numeral)
                                            & (a.CodTerminoPertenencia == 1 || a.CodTerminoPertenencia == 2) //COMPRENDE O INCLUYE (Aqui va numeral
                                            select new EDistrito {
                IdUbigeo = a.Ubigeo.IdUbigeo
            }
                                            ).ToList();


            // Obtener ID de los distritos excluidos
            var idDistritosExcluidos = (from a in jurisdiccionUgeles
                                        where a.Ubigeo.TipoUbigeo.CodTipoUbigeo == 3 //Distritos (Aqui crear numeral)
                                        & a.CodTerminoPertenencia == 3               //EXCLUYE (Aqui va numeral)
                                        select new EDistrito {
                IdUbigeo = a.Ubigeo.IdUbigeo
            }
                                        ).ToList();


            //Obtener distritos excluidos, se tienen que sumar al total de distritos y tambien sumar sus provincias y sus centros poblados.
            IEnumerable <EDistrito>  vard2_distritosExcluidos = null;
            IEnumerable <EProvincia> vard3_provinciasDeVard2  = null;

            if (idDistritosExcluidos.Count > 0)
            {
                vard2_distritosExcluidos = comunRegistroRepositorio.ObtenerDistritosPorListaIdDistritos(idDistritosExcluidos);

                // Obtener las provincias de los distritos excluidos. Sumar al total de provincias no asignadas.
                vard3_provinciasDeVard2 = (from a in vard2_distritosExcluidos
                                           select a.Provincia
                                           ).Distinct().ToList();
            }

            List <EDistrito> vard4_distritosNoAsignados = null;

            // varp2_distritosNoAsignadosDeVar1  - vard1_distritosAsignados + vard2_distritosExcluidos
            if (vard1_distritosAsignados.Count > 0)
            {
                vard4_distritosNoAsignados = ((from a in varp2_distritosNoAsignadosDeVar1
                                               where !(from b in vard1_distritosAsignados select b.IdUbigeo).Contains(a.IdUbigeo)
                                               select a).ToList()).Union(vard2_distritosExcluidos).ToList();
            }
            else
            {
                vard4_distritosNoAsignados = (from a in varp2_distritosNoAsignadosDeVar1
                                              where !(from b in vard1_distritosAsignados select b.IdUbigeo).Contains(a.IdUbigeo)
                                              select a).ToList();
            }
            //CENTROS POBLADOS ----------------------------------------------------------------------------------------------------------
            //---------------------------------------------------------------------------------------------------------------------------
            //Obtener todos los CCPP de vard4_distritosNoAsignados
            var varc1_ccppNoAsignadosDeVard4 = comunRegistroRepositorio.ObtenerCCPPPorListaDistrito(vard4_distritosNoAsignados);

            //CCPP asignados con comprende e incluye, se tiene que restar del total de distritos y tambien restar sus centros poblados del total de centros poblados.
            var varc2_CCPPAsignados = (from a in jurisdiccionUgeles
                                       where a.Ubigeo.TipoUbigeo.CodTipoUbigeo == 4                     //CCPP (Aqui crear numeral)
                                       & (a.CodTerminoPertenencia == 1 || a.CodTerminoPertenencia == 2) //COMPRENDE O INCLUYE (Aqui va numeral)
                                       select new ECentroPoblado {
                IdUbigeo = a.Ubigeo.IdUbigeo
            }
                                       ).ToList();

            // Obtener ID de los CCPP excluidos
            var idCCPPExcluidos = (from a in jurisdiccionUgeles
                                   where a.Ubigeo.TipoUbigeo.CodTipoUbigeo == 4 //Distritos (Aqui crear numeral)
                                   & a.CodTerminoPertenencia == 3               //EXCLUYE (Aqui va numeral)
                                   select new ECentroPoblado {
                IdUbigeo = a.Ubigeo.IdUbigeo
            }
                                   ).ToList();

            //Obtener distritos excluidos, se tienen que sumar al total de distritos y tambien sumar sus provincias y sus centros poblados.
            IEnumerable <ECentroPoblado> varc3_CCPPExcluidos    = null;
            IEnumerable <EDistrito>      varc4_distritosDeVard3 = null;

            if (idCCPPExcluidos.Count > 0)
            {
                varc3_CCPPExcluidos = comunRegistroRepositorio.ObtenerCCPPPorListaCCPP(idCCPPExcluidos).ToList();

                // Obtener las provincias de los distritos excluidos. Sumar al total de provincias no asignadas.
                varc4_distritosDeVard3 = (from a in varc3_CCPPExcluidos
                                          select a.Distrito
                                          ).Distinct().ToList();
            }

            // varc1_ccppNoAsignadosDeVard4  - varc2_CCPPAsignados + varc3_CCPPExcluidos
            var varc5_CCPPNoAsignados = ((from a in varc1_ccppNoAsignadosDeVard4
                                          where !(from b in varc2_CCPPAsignados select b.IdUbigeo).Contains(a.IdUbigeo)
                                          select a).ToList()).Union(varc3_CCPPExcluidos).ToList();

            var provinciasNoAsignadas      = varp1_provinciasNoAsignadasComprende.Union(vard3_provinciasDeVard2).ToList();
            var distritosNoAsignados       = vard4_distritosNoAsignados.Union(varc4_distritosDeVard3).ToList();
            var centrosPobladosNoAsignados = varc5_CCPPNoAsignados;

            eOpcionesJurisdiccionPertenencia.Region             = region;
            eOpcionesJurisdiccionPertenencia.ListaProvincias    = provinciasNoAsignadas;
            eOpcionesJurisdiccionPertenencia.ListaDistritos     = distritosNoAsignados;
            eOpcionesJurisdiccionPertenencia.ListaCentroPoblado = centrosPobladosNoAsignados;

            return(eOpcionesJurisdiccionPertenencia);
        }