Guest User

Untitled

a guest
Jul 22nd, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. public class GetAllProjectsWithSubProjectViewModel
  2. {
  3. public Project Project { get; set; }
  4.  
  5. public ICollection<SubProject> SubProjects { get; set; }
  6. }
  7.  
  8. public class Project
  9. {
  10. // PK
  11. public int Id { get; set; }
  12.  
  13. public string ProjectName { get; set; }
  14.  
  15. public Project()
  16. { }
  17.  
  18. public Project(string projectName)
  19. {
  20. this.ProjectName = projectName;
  21. }
  22. }
  23.  
  24. public class SubProject
  25. {
  26. // PK
  27. public int Id { get; set; }
  28.  
  29. public string SubProjectName { get; set; }
  30.  
  31. public SubProject()
  32. { }
  33.  
  34. public SubProject(string subProjectName)
  35. {
  36. this.SubProjectName = subProjectName;
  37. }
  38. }
  39.  
  40. public class ProjectSubProject
  41. {
  42. // PK
  43. public int ProjectId { get; set; }
  44. public Project Project { get; set; }
  45.  
  46. // PK
  47. public int SubProjectId { get; set; }
  48. public SubProject SubProject { get; set; }
  49.  
  50.  
  51. public ProjectSubProject()
  52. { }
  53.  
  54. public ProjectSubProject(
  55. Project project,
  56. SubProject subProject)
  57. {
  58. Project = project;
  59. SubProject = subProject;
  60. }
  61. }
  62.  
  63. // Host/projects/GetAllProjectsWithSubProjects
  64. [Authorize]
  65. [HttpGet]
  66. public async Task<object> GetAllProjectsWithSubProjects()
  67. {
  68. var projectsInfo = new List<GetAllProjectsWithSubProjectViewModel>();
  69.  
  70. foreach (var project in _context.Projects)
  71. {
  72. var subProjects = await _context.ProjectSubProjects
  73. .Where(ps => ps.ProjectId == project.Id)
  74. .Select(ps => ps.SubProject)
  75. .ToListAsync();
  76.  
  77. var projectInfo = new GetAllProjectsWithSubProjectViewModel
  78. {
  79. Project = project,
  80. SubProjects = subProjects,
  81. };
  82. projectsInfo.Add(projectInfo);
  83. }
  84.  
  85. return projectsInfo;
  86. }
Add Comment
Please, Sign In to add comment