I have these classes:
public class Project
{
public int ProjectId { get; set; }
public int AccountId { get; set; }
public int UserId { get; set; }
public string Name { get; set; }
public DateTime StartDate { get; set; }
public string Description { get; set; }
public string Tags { get; set; }
public virtual List<Task> Tasks { get; set; }
}
public class Task
{
public int TaskId { get; set; }
public int ProjectId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public DateTime StartDate { get; set; }
public DateTime? DueDate { get; set; }
public int TaskOwnerId { get; set; }
public string Tags { get; set; }
public virtual Project Project { get; set; }
public virtual List<TaskAssigned> TaskAssigns { get; set; }
public virtual List<TaskComment> TaskComments { get; set; }
}
public class TaskAssigned
{
public int TaskAssignedId { get; set; }
public int TaskId { get; set; }
public int UserId { get; set; }
}
and I need to take all projects belong to each user based on tasks assigned to him/her
I have come up with this solution but I could not move forward:
public List<Project> GetProjectsByAccountIdUserId(int accountId, int userId)
{
var tasks = context.TaskAssigns.Where(ta => ta.UserId == userId).ToList();
var projects =context.Projects.Where(p => p.AccountId == accountId).Include("Tasks").ToList();
return projects;
}
I do not know how to correlate and filter tasks for each project by taskId.
1 Answer