public UsuarioFuncionalidadeViewModel() { Usuario = new UsuarioDTO(); Modulo = new ModuloDTO(); //Perfil = new PerfilDTO(); JsonFuncionalidadesModulo = "[]"; JsonFuncionalidadesPerfil = "[]"; JsonFuncionalidadesAvulsas = "[]"; Filtro = new UsuarioFuncionalidadeFiltro(); }
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> >()); }
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> >()); }