public List <Tuple <string, int, double> > GetSoleExpertArtifactsForDeveloper(int developerId) { var developerExpertises = DeveloperExpertises.Include(de => de.Artifact).Include(de => de.DeveloperExpertiseValues).Where(de => de.DeveloperId == developerId && de.Artifact.DeveloperExpertises.Count < 2).AsNoTracking(); var result = new List <Tuple <string, int, double> >(); foreach (var developerExpertise in developerExpertises) { result.AddRange(developerExpertise.DeveloperExpertiseValues.Select(expertise => new Tuple <string, int, double>(developerExpertise.Artifact.Name, developerExpertise.ArtifactId, expertise.Value))); } return(result); }
public List <SimplifiedDeveloperExpertise> GetDevelopersForArtifactAndAlgorithm(int artifactId, int algorithmId) { var developerExpertises = DeveloperExpertises.Include(de => de.Developer).Include(de => de.DeveloperExpertiseValues).Where(de => de.ArtifactId == artifactId).AsNoTracking(); var result = new List <SimplifiedDeveloperExpertise>(); foreach (var developerExpertise in developerExpertises) { result.AddRange(from expertise in developerExpertise.DeveloperExpertiseValues where expertise.AlgorithmId == algorithmId select new SimplifiedDeveloperExpertise { DeveloperName = developerExpertise.Developer.Name, DeveloperId = developerExpertise.DeveloperId, Expertise = expertise.Value }); } return(result); }