public async Task <VerCCPorPersonaFiltroVM> Handle(GetVerCCPorPersonasFiltroQuery request, CancellationToken cancellationToken) { var vm = new VerCCPorPersonaFiltroVM(); var filtro = request.filtro; var JerPosicion = await _context.TJerarquia.FindAsync(filtro.Gerencia); IList <string> JerarquiaPersonas = null; if (!string.IsNullOrEmpty(filtro.CodPersona)) { JerarquiaPersonas = new List <string>(); JerarquiaPersonas.Add(filtro.CodPersona); } else if (JerPosicion != null) { JerarquiaPersonas = _context.TJerarquia.Join(_context.TJerarquiaPersona, jer => jer.CodPosicion, jper => jper.CodPosicion, (jer, jper) => new { jer = jer, jper = jper }) .Where(tuple => (tuple.jer.PathJerarquia.Substring(0, JerPosicion.PathJerarquia.Length) == JerPosicion.PathJerarquia && tuple.jper.CodTipoPersona == 1)) .Select(t => t.jper.CodPersona) .ToList(); } var meses = Meses(filtro.CodMes); var query = _context.TPlanAnualVerConCri.Where(t => t.Anio.Equals(filtro.Anio) && (String.IsNullOrEmpty(filtro.CodPersona) || t.CodPersona.Equals(filtro.CodPersona)) && (String.IsNullOrEmpty(filtro.CodReferencia) || t.CodReferencia.Equals(filtro.CodReferencia)) && (JerarquiaPersonas == null || JerarquiaPersonas.Contains(t.CodPersona)) && (meses == null || meses.Contains(t.CodMes)) ) .GroupBy(t => new { t.CodPersona, t.CodReferencia, t.Anio }) .Select(data => new VerCCProDto() { CodReferencia = data.Key.CodReferencia, NumeroPlanes = data.Count(), Anio = data.Key.Anio, CodPersona = data.Key.CodPersona }); // .ProjectTo<VerCCProDto>(_mapper.ConfigurationProvider) // .ToList(); vm.Count = query.Count(); vm.Pagina = filtro.Pagina; if ((filtro.Pagina) > (vm.Count / filtro.PaginaTamanio) + 1) { filtro.Pagina = 1; } var ListQuery = query .Skip(filtro.Pagina * filtro.PaginaTamanio - filtro.PaginaTamanio) .Take(filtro.PaginaTamanio) .ToHashSet(); var index = 0; foreach (var iten in ListQuery) { iten.Orden = index++; iten.Persona = await GetPersonaFull(iten.CodPersona); var jer = await GetJeraquiaSG(iten.CodPersona); if (jer != null && jer.Count() > 0) { var super = jer.Where(t => t.Tipo.Equals("S")).FirstOrDefault(); if (super != null) { iten.CodSuperintendencia = super.CodPosicion.ToString(); iten.Superintendencia = super.Descripcion; } var gerencia = jer.Where(t => t.Tipo.Equals("G")).FirstOrDefault(); if (gerencia != null) { iten.CodGerencia = gerencia.CodPosicion.ToString(); iten.Gerencia = gerencia.Descripcion; } } } vm.list = ListQuery; return(vm); }
public async Task <GetPlanAnualSeguimientoVM> Handle(GetPlanAnualSeguimientoQuery request, CancellationToken cancellationToken) { var vm = new GetPlanAnualSeguimientoVM(); var filtros = request.filtros; var JerPosicion = await _context.TJerarquia.FindAsync(filtros.Gerencia); IList <string> JerarquiaPersonas = null; if (!string.IsNullOrEmpty(filtros.Persona)) { JerarquiaPersonas = new List <string>(); JerarquiaPersonas.Add(filtros.Persona); } else if (JerPosicion != null) { JerarquiaPersonas = _context.TJerarquia.Join(_context.TJerarquiaPersona, jer => jer.CodPosicion, jper => jper.CodPosicion, (jer, jper) => new { jer = jer, jper = jper }) .Where(tuple => (tuple.jer.PathJerarquia.Substring(0, JerPosicion.PathJerarquia.Length) == JerPosicion.PathJerarquia && tuple.jper.CodTipoPersona == 1)) .Select(t => t.jper.CodPersona) .ToList(); } vm.Pagina = request.filtros.Pagina; vm.Count = JerarquiaPersonas.Count(); if (filtros.CodReferencia == null || filtros.CodReferencia.Count == 0) { vm.Codigos = _context.TPlanAnualVerConCri.Where(t => (String.IsNullOrEmpty(filtros.Anio) || t.Anio.Equals(filtros.Anio)) && (String.IsNullOrEmpty(filtros.Mes) || t.CodMes.Equals(filtros.Mes)) && (JerarquiaPersonas.Contains(t.CodPersona)) ) .GroupBy(t => t.CodReferencia) .Select(t => t.Key).ToHashSet(); filtros.CodReferencia = vm.Codigos; } else { vm.Codigos = filtros.CodReferencia; } if ((filtros.Pagina) > (vm.Count / filtros.PaginaTamanio) + 1) { filtros.Pagina = 1; } var ListQuery = JerarquiaPersonas .Skip(filtros.Pagina * filtros.PaginaTamanio - filtros.PaginaTamanio) .Take(filtros.PaginaTamanio) .ToHashSet(); foreach (var persona in ListQuery) { var nuevo = new PersonaPSADto(); nuevo.CodPersona = persona; nuevo.Nombres = getPersonaFull(persona); nuevo.ListModulo = await getListPerson(filtros, persona); vm.ListPersona.Add(nuevo); } return(vm); }
public async Task <GetPlanAnualSeguimientoVM> Handle(GetPlanAnualSeguimientoQuery request, CancellationToken cancellationToken) { var vm = new GetPlanAnualSeguimientoVM(); var filtros = request.filtros; var JerPosicion = await _context.TJerarquia.FindAsync(filtros.Gerencia); IList <string> JerarquiaPersonas = null; if (!string.IsNullOrEmpty(filtros.Persona)) { JerarquiaPersonas = new List <string>(); JerarquiaPersonas.Add(filtros.Persona); } else if (JerPosicion != null) { JerarquiaPersonas = _context.TJerarquia.Join(_context.TJerarquiaPersona, jer => jer.CodPosicion, jper => jper.CodPosicion, (jer, jper) => new { jer = jer, jper = jper }) .Where(tuple => (tuple.jer.PathJerarquia.Substring(0, JerPosicion.PathJerarquia.Length) == JerPosicion.PathJerarquia && tuple.jper.CodTipoPersona == 1)) .Select(t => t.jper.CodPersona) .ToList(); } vm.Pagina = request.filtros.Pagina; vm.Count = JerarquiaPersonas.Count(); if (filtros.CodReferencia == null || filtros.CodReferencia.Count == 0) { vm.Codigos = _context.TPlanAnualGeneral.Where(t => (String.IsNullOrEmpty(filtros.Anio) || t.Anio.Equals(filtros.Anio)) && (String.IsNullOrEmpty(filtros.Mes) || t.CodMes.Equals(filtros.Mes)) && (JerarquiaPersonas.Contains(t.CodPersona)) ) .GroupBy(t => t.CodReferencia) .Select(t => t.Key).ToHashSet(); filtros.CodReferencia = vm.Codigos; } else { vm.Codigos = filtros.CodReferencia; } if ((filtros.Pagina) > (vm.Count / filtros.PaginaTamanio) + 1) { filtros.Pagina = 1; } var ListQuery = JerarquiaPersonas .Skip(filtros.Pagina * filtros.PaginaTamanio - filtros.PaginaTamanio) .Take(filtros.PaginaTamanio) .ToList(); var Listperson = _context.TPersona.Where(p => ListQuery.Contains(p.CodPersona)).Select(t => new { t.CodPersona, Nombres = t.ApellidoPaterno + " " + t.ApellidoMaterno + "," + t.Nombres }).ToList(); var PlanAnualPersons = _context.TPlanAnualGeneral .Where(t => (filtros.CodReferencia.Contains(t.CodReferencia)) && (String.IsNullOrEmpty(filtros.Anio) || t.Anio.Equals(filtros.Anio)) && (String.IsNullOrEmpty(filtros.Mes) || t.CodMes.Equals(filtros.Mes)) && (ListQuery.Contains(t.CodPersona)) ).ToList().GroupBy(x => x.CodPersona) .Select(g => new PersonaPSADto { Nombres = Listperson.First(p => p.CodPersona == g.Key).Nombres, CodPersona = g.Key, ListModulo = g.Select(lc => new ModuloEjeDto(lc.CodReferencia, 0, Int32.Parse(lc.Valor))).ToList(), }).ToList(); foreach (var codM in vm.Codigos) { //var Ejecutados = await _ejecutados.getLisPer(codM, Int32.Parse(filtros.Anio), Int32.Parse(filtros.Mes), ListQuery); //var Ejecutados = await _ejecutados.getLisPer(codM, Int32.Parse(filtros.Anio), Int32.Parse(filtros.Mes), ListQuery); var Ejecutados = await getLisPer(codM, Int32.Parse(filtros.Anio), Int32.Parse(filtros.Mes), ListQuery); foreach (var tuplePer in Ejecutados) { var tempPer = PlanAnualPersons.Where(p => p.CodPersona == tuplePer.Item1).FirstOrDefault(); if (tempPer == null) { var NewPerson = new PersonaPSADto() { Nombres = Listperson.First(p => p.CodPersona == tuplePer.Item1).Nombres, CodPersona = tuplePer.Item1 }; NewPerson.ListModulo.Add(new ModuloEjeDto(codM, tuplePer.Item2, 0)); PlanAnualPersons.Add(NewPerson); } else { var tempMod = tempPer.ListModulo.Where(m => m.Codigo == codM).FirstOrDefault(); if (tempMod == null) { tempPer.ListModulo.Add(new ModuloEjeDto(codM, tuplePer.Item2, 0)); } else { tempMod.Ejecutados = tuplePer.Item2; } } } } vm.ListPersona = PlanAnualPersons; vm.Count = PlanAnualPersons.Count(); //foreach (var persona in ListQuery) //{ // var nuevo = new PersonaPSADto(); // nuevo.CodPersona = persona; // nuevo.Nombres = getPersonaFull(persona); // nuevo.ListModulo = await getListPerson(filtros, persona); // vm.ListPersona.Add(nuevo); //} return(vm); }