Ejemplo n.º 1
0
 public UsuarioFuncionalidadeViewModel()
 {
     Usuario = new UsuarioDTO();
     Modulo  = new ModuloDTO();
     //Perfil = new PerfilDTO();
     JsonFuncionalidadesModulo  = "[]";
     JsonFuncionalidadesPerfil  = "[]";
     JsonFuncionalidadesAvulsas = "[]";
     Filtro = new UsuarioFuncionalidadeFiltro();
 }
Ejemplo n.º 2
0
        public List <UsuarioFuncionalidadeDTO> ListarPeloFiltro(UsuarioFuncionalidadeFiltro filtro, out int totalRegistros)
        {
            var specification = (Specification <UsuarioFuncionalidade>) new TrueSpecification <UsuarioFuncionalidade>();

            specification &= UsuarioFuncionalidadeSpecification.IgualAoUsuarioId(filtro.UsuarioId);
            specification &= UsuarioFuncionalidadeSpecification.IgualAoModuloId(filtro.ModuloId);

            return(usuarioFuncionalidadeRepository.ListarPeloFiltroComPaginacao(
                       specification,
                       filtro.PaginationParameters.PageIndex,
                       filtro.PaginationParameters.PageSize,
                       filtro.PaginationParameters.OrderBy,
                       filtro.PaginationParameters.Ascending,
                       out totalRegistros, l => l.Usuario, l => l.Modulo).To <List <UsuarioFuncionalidadeDTO> >());
        }
Ejemplo n.º 3
0
        public List <UsuarioPerfilDTO> ListarPeloUsuarioModulo(UsuarioFuncionalidadeFiltro filtro, out int totalRegistros)
        {
            List <UsuarioFuncionalidade> listaFuncionalidadeAux;
            List <UsuarioFuncionalidade> listaFuncionalidade = new List <UsuarioFuncionalidade>();
            List <UsuarioPerfil>         listaPerfilAux;
            List <UsuarioPerfil>         listaPerfil  = new List <UsuarioPerfil>();
            List <UsuarioPerfilDTO>      listaRetorno = new List <UsuarioPerfilDTO>();
            UsuarioPerfilDTO             objRetorno   = new UsuarioPerfilDTO();

            var listaUsuario = usuarioRepository.ListarTodos(l => l.ListaUsuarioFuncionalidade.Select(i => i.Modulo),
                                                             l => l.ListaUsuarioPerfil.Select(i => i.Modulo),
                                                             l => l.ListaUsuarioPerfil.Select(i => i.Perfil)).ToList <Usuario>();

            foreach (Usuario usuario in listaUsuario)
            {
                if (filtro.ModuloId != null)
                {
                    listaFuncionalidadeAux = usuario.ListaUsuarioFuncionalidade.Where(i => i.ModuloId == filtro.ModuloId).ToList <UsuarioFuncionalidade>();
                    listaPerfilAux         = usuario.ListaUsuarioPerfil.Where(i => i.ModuloId == filtro.ModuloId).ToList <UsuarioPerfil>();
                }
                else
                {
                    listaFuncionalidadeAux = usuario.ListaUsuarioFuncionalidade.ToList <UsuarioFuncionalidade>();
                    listaPerfilAux         = usuario.ListaUsuarioPerfil.ToList <UsuarioPerfil>();
                }


                if (filtro.UsuarioId != null)
                {
                    if (filtro.UsuarioId == usuario.Id)
                    {
                        listaFuncionalidade.AddRange(listaFuncionalidadeAux);
                        listaPerfil.AddRange(listaPerfilAux);

                        break;
                    }
                }
                else
                {
                    listaFuncionalidade.AddRange(listaFuncionalidadeAux);
                    listaPerfil.AddRange(listaPerfilAux);
                }
            }

            string chave;
            var    vetRepeticao = new System.Collections.Hashtable();

            foreach (var item in listaPerfil)
            {
                chave = item.UsuarioId + "|" + item.ModuloId;

                if (vetRepeticao.ContainsKey(chave) == true)
                {
                    continue;
                }

                objRetorno           = null;
                objRetorno           = new UsuarioPerfilDTO();
                objRetorno.Modulo    = item.Modulo.To <ModuloDTO>();
                objRetorno.ModuloId  = objRetorno.Modulo.Id.Value;
                objRetorno.Usuario   = item.Usuario.To <UsuarioDTO>();
                objRetorno.UsuarioId = objRetorno.Usuario.Id.Value;
                objRetorno.Perfil    = item.Perfil.To <PerfilDTO>();
                objRetorno.PerfilId  = objRetorno.Perfil.Id.Value;
                listaRetorno.Add(objRetorno);
                vetRepeticao.Add(chave, chave);
            }

            foreach (var item in listaFuncionalidade)
            {
                chave = item.UsuarioId + "|" + item.ModuloId;

                if (vetRepeticao.ContainsKey(chave) == true)
                {
                    continue;
                }

                objRetorno           = null;
                objRetorno           = new UsuarioPerfilDTO();
                objRetorno.Modulo    = item.Modulo.To <ModuloDTO>();
                objRetorno.ModuloId  = objRetorno.Modulo.Id.Value;
                objRetorno.Usuario   = item.Usuario.To <UsuarioDTO>();
                objRetorno.UsuarioId = objRetorno.Usuario.Id.Value;
                objRetorno.Perfil    = new PerfilDTO();
                listaRetorno.Add(objRetorno);
                vetRepeticao.Add(chave, chave);
            }

            int pageCount = filtro.PaginationParameters.PageSize;
            int pageIndex = filtro.PaginationParameters.PageIndex;


            if (string.IsNullOrEmpty(filtro.PaginationParameters.OrderBy))
            {
                listaRetorno = listaRetorno.OrderBy(l => l.Usuario.Login).ThenBy(i => i.Modulo.NomeCompleto).ToList <UsuarioPerfilDTO>();
            }

            switch (filtro.PaginationParameters.OrderBy)
            {
            case "usuario":
                if (filtro.PaginationParameters.Ascending)
                {
                    listaRetorno = listaRetorno.OrderBy(l => l.Usuario.Login).ToList <UsuarioPerfilDTO>();
                }
                if (!filtro.PaginationParameters.Ascending)
                {
                    listaRetorno = listaRetorno.OrderByDescending(l => l.Usuario.Login).ToList <UsuarioPerfilDTO>();
                }
                break;

            case "modulo":
                if (filtro.PaginationParameters.Ascending)
                {
                    listaRetorno = listaRetorno.OrderBy(l => l.Modulo.NomeCompleto).ToList <UsuarioPerfilDTO>();
                }
                if (!filtro.PaginationParameters.Ascending)
                {
                    listaRetorno = listaRetorno.OrderByDescending(l => l.Modulo.NomeCompleto).ToList <UsuarioPerfilDTO>();
                }
                break;

            case "perfil":
                if (filtro.PaginationParameters.Ascending)
                {
                    listaRetorno = listaRetorno.OrderBy(l => l.Perfil.Descricao).ToList <UsuarioPerfilDTO>();
                }
                if (!filtro.PaginationParameters.Ascending)
                {
                    listaRetorno = listaRetorno.OrderByDescending(l => l.Perfil.Descricao).ToList <UsuarioPerfilDTO>();
                }
                break;

            case "id":
            default:
                break;
            }

            totalRegistros = listaRetorno.Count();

            return(listaRetorno.Skip(pageCount * pageIndex).Take(pageCount).To <List <UsuarioPerfilDTO> >());
        }