示例#1
0
        private void VerificarAreas()
        {
            var usuario  = new ManterUsuario().ObterUsuarioPorID(IdUsuario);
            var subAreas = new ManterSubarea().ObterPorUsuario(usuario);

            if (subAreas.Any())
            {
                // Converte só uma vez em DTO pra evitar consulta lazy a cada loop dos repeaters de áreas.
                var areasDto = subAreas.Select(x => x.Area).Distinct().Select(a => new DTOArea
                {
                    id       = a.ID,
                    nome     = a.Nome,
                    subAreas =
                        subAreas.Where(s => s.Area.ID == a.ID)
                        .Select(s => new DTOSubarea
                    {
                        id   = s.ID,
                        nome = s.Nome
                    }).ToList()
                }).OrderBy(x => x.id);

                rptAreas.DataSource = areasDto;
                rptAreas.DataBind();

                divAreas.Visible = true;
            }
        }
示例#2
0
        public List <Subarea> ObterSubareasSelecionadas()
        {
            var dtoIdsSubAreasSelecionadas =
                new JavaScriptSerializer().Deserialize <List <DTOArea> >(txtJsonAreasSelecionadas.Value)
                .SelectMany(x => x.subAreas).Where(x => x.selecionada == true).Select(x => x.id).ToList();

            var subAreas =
                new ManterSubarea().ObterTodos().Select(x => x.ID).ToList();

            return((from id in dtoIdsSubAreasSelecionadas
                    where subAreas.Contains(id)
                    select new Subarea {
                ID = id
            }).ToList());
        }