0
I would like to filter a list, by the id of a Collaborator, my problem is that when returning to the list it returns everything from the bank.
I need to filter for example all Projects that the Collaborator with Id=10 is involved, someone could help me?
I am using Asp.net Core and EF.
Class Clientprojectprogramworker
public class ClienteProjetoColaborador
{
public int IdClienteProjetoColaborador { get; set; }
[Display(Name = "Projeto")]
public int? IdProjeto { get; set; }
[Display (Name ="Cliente")]
public int? IdCliente { get; set; }
[Display(Name = "Colaborador")]
public int? IdColaborador { get; set; }
[Display(Name = "Atividade")]
public int? IdAtividade { get; set; }
[Display(Name = "Status")]
public int? IdStatus { get; set; }
[Display(Name = "Tipo")]
public int? IdTipoStatusAtividade { get; set; }
[Display(Name = "Data Inicial")]
public DateTime? DataInicial { get; set; }
[Display(Name = "Data Final")]
public DateTime? DataFinal { get; set; }
public decimal? EsforcoEstimado { get; set; }
public decimal? EsforcoReal { get; set; }
public string Observacao { get; set; }
public string UsuarioLog { get; set; }
public DateTime? DataLog { get; set; }
public string DescricaoLog { get; set; }
[Display(Name = "Atividade")]
public virtual Atividade IdAtividadeNavigation { get; set; }
[Display(Name = "Cliente")]
public virtual Cliente IdClienteNavigation { get; set; }
[Display(Name = "Colaborador")]
public virtual Colaboradores IdColaboradorNavigation { get; set; }
[Display(Name = "Projeto")]
public virtual Projeto IdProjetoNavigation { get; set; }
[Display(Name = "Status")]
public virtual StatusProjeto IdStatusNavigation { get; set; }
[Display(Name = "Status")]
public virtual TipoStatusAtividade IdTipoStatusAtividadeNavigation { get; set; }
public Colaboradores Colaboradores { get; set; }
List<ClienteProjetoColaborador> ClienteProjetoColaboradores { get; set; }
}
Class Collaborators
public class Colaboradores
{
public Colaboradores()
{
CalculoProjeto = new HashSet<CalculoProjeto>();
ClienteProjetoColaborador = new HashSet<ClienteProjetoColaborador>();
ProjetoIdGerenteContaNavigation = new HashSet<Projeto>();
ProjetoIdResponsavelCptNavigation = new HashSet<Projeto>();
}
public int IdColaborador { get; set; }
[Display(Name = "Nome Colaborador")]
public string NomeColaborador { get; set; }
[Display(Name = "Departamento")]
public int IdDepartamento { get; set; }
[Display(Name = "Cargo")]
public int IdCargo { get; set; }
[Display(Name = "Custo Total Colaborador")]
public int? IdCustoTotalColaborador { get; set; }
public string UsuarioLog { get; set; }
public DateTime? DataLog { get; set; }
public string DescricaoLog { get; set; }
[Display(Name = "Cargo")]
public virtual Cargo IdCargoNavigation { get; set; }
[Display(Name = "Custo Colaborador")]
public virtual CustoTotalColaborador IdCustoTotalColaboradorNavigation { get; set; }
[Display(Name = "Departamento")]
public virtual Departamento IdDepartamentoNavigation { get; set; }
public virtual ICollection<CalculoProjeto> CalculoProjeto { get; set; }
public virtual ICollection<ClienteProjetoColaborador> ClienteProjetoColaborador { get; set; }
public virtual ICollection<Projeto> ProjetoIdGerenteContaNavigation { get; set; }
public virtual ICollection<Projeto> ProjetoIdResponsavelCptNavigation { get; set; }
List<Colaboradores>listaColab { get; set; }
}
Viewmodel I will return
public class ViewModel
{
[Key]
public int ColaboradorViewModelId { get; set; }
public string NomeColaborador { get; set; } //TABELA COLABORADORES
public int? IdProjeto { get; set; } // TABELA DO PROJETO
public int? IdCliente { get; set; } // TABELA DO CLIENTE
}
Index method I want to make the filter.
public IActionResult Index()
{
var Id = 10;
List<ViewModel> ListaExemplo = new List<ViewModel>();
//CONSULTA DE DADOS NO BD
var listaBD = (from Colaboradores in _context.Colaboradores
join ClienteProjetoColaborador in _context.ClienteProjetoColaborador on Colaboradores.IdColaborador equals ClienteProjetoColaborador.IdColaborador
select new { Colaboradores.IdColaborador, Colaboradores.NomeColaborador, ClienteProjetoColaborador.IdCliente, ClienteProjetoColaborador.IdProjeto }).ToList();
//PERCORRE A LISTA DE CLIENTES E PREENCHE A VIEW MODEL
foreach (var item in listaBD)
{
ViewModel VMColab = new ViewModel();
VMColab.ColaboradorViewModelId = item.IdColaborador;
VMColab.NomeColaborador = item.NomeColaborador;
VMColab.IdCliente = item.IdCliente;
VMColab.IdProjeto = item.IdProjeto;
ListaExemplo.Add(VMColab);
}
return View(ListaExemplo);
}
Thank you! clarified my doubts
– Guilherme Palange
No problem my good, you can count on Sopt’s people for everything! ;)
– Paz