public static List <UsuarioPresenca> List(int Cod_Comum, int Cod_Grupo, DateTime Data, string FiltroPresenca = "", string FiltroUsuario = "", Context cx = null) { if (cx == null) { cx = new Context(); } if (Cod_Comum == 0 || Data == null || Data == DateTime.MinValue) { return(new List <UsuarioPresenca>()); } string query = PrepareQuery( @" u.Cod_Usuario ,u.Nome ,u.Email ,u.Telefone ,u.Endereco ,u.Aluno ,u.Instrutor ,u.Oficializado ,u.Admin ,u.Cod_Instrumento ,u.Cod_Comum ,u.Observacao ,p.Cod_Presenca ,j.Cod_Justificativa ,i.Nome as Instrumento ,g.Nome as Grupo", Cod_Grupo, FiltroPresenca, FiltroUsuario); var list = cx.Query <UsuarioPresenca>(query, new { Cod_Comum, Data = Data.ToString("yyyy-MM-dd") }).ToList(); List <UsuarioGrupo> grupos = UsuarioGrupo.ListByUusarios(list.Select(e => e.Cod_Usuario).ToArray(), cx); foreach (var item in list) { item.Cod_Grupos = grupos.Where(e => e.Cod_Usuario == item.Cod_Usuario).Select(e => e.Cod_Grupo).ToArray(); item.Grupos = string.Join(", ", Grupo.ListIn(item.Cod_Grupos, Cod_Comum).Select(e => e.Nome).ToArray()); } return(list); }
public static List <Usuario> ListByComum(int Cod_Comum, int Cod_Grupo = 0, string filtro = "", string status = "", int[] categoria_instrumento = null, Context cx = null) { if (cx == null) { cx = new Context(); } string status_ativo = (status == "Ativo" ? "and u.Ativo = 1" : ""); string status_inativo = (status == "Inativo" ? "and (u.Ativo = 0 or u.Ativo is null)" : ""); string filtro_oficializados = (filtro == "Oficializados" ? "and u.Oficializado = 1" : ""); string filtro_instrutores = (filtro == "Instrutores" ? "and u.Instrutor = 1" : ""); string filtro_rjm = (filtro == "RJM" ? "and u.RJM = 1" : ""); string filtro_alunos = (filtro == "Alunos" ? "and u.Aluno = 1" : ""); string filtro_grupo = (Cod_Grupo != 0 ? string.Format("and u.Cod_Usuario in (select Cod_Usuario from UsuarioGrupo where Cod_Grupo = {0})", Cod_Grupo) : ""); string filtro_instrumento = (categoria_instrumento != null ? string.Format("and i.Cod_Categoria in ({0})", String.Join(',', categoria_instrumento)) : ""); var list = cx.Query <Usuario>( string.Format(@"select u.Cod_Usuario ,u.Nome ,u.Email ,u.Telefone ,u.Endereco ,u.Aluno ,u.Instrutor ,u.Oficializado ,u.Admin ,u.Dev ,u.RJM ,u.Ativo ,u.Cod_Instrumento --,u.Cod_Grupo ,u.Cod_Comum ,u.AvisoLido ,u.Observacao ,LEN(u.RecuperarSenha) as RecuperarSenha --,g.Nome as Grupo ,i.Nome as Instrumento from Usuario u --left outer join Grupo g on g.Cod_Grupo = u.Cod_Grupo left outer join Instrumento i on i.Cod_Instrumento = u.Cod_Instrumento where u.Cod_Comum = @Cod_Comum {0} {1} {2} {3} {4} {5} {6} {7}", filtro_grupo, status_ativo, status_inativo, filtro_oficializados, filtro_instrutores, filtro_rjm, filtro_alunos, filtro_instrumento) , new { Cod_Comum }).ToList(); List <UsuarioGrupo> grupos = UsuarioGrupo.ListByUusarios(list.Select(e => e.Cod_Usuario).ToArray(), cx); foreach (var item in list) { item.Cod_Grupos = grupos.Where(e => e.Cod_Usuario == item.Cod_Usuario).Select(e => e.Cod_Grupo).ToArray(); item.Grupos = string.Join(", ", Grupo.ListIn(item.Cod_Grupos, Cod_Comum).Select(e => e.Nome).ToArray()); } return(list); }