Guest User

Untitled

a guest
Mar 6th, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.47 KB | None | 0 0
  1. public class Tournament
  2. {
  3. [Key]
  4. public string TournamentID { get; set; }
  5. public DateTime TournamentDate { get; set; }
  6. public string Place { get; set; }
  7.  
  8. [ForeignKey("TeamA")]
  9. public string TeamAID { get; set; }
  10. public Team TeamA { get; set; }
  11.  
  12. [ForeignKey("TeamB")]
  13. public string TeamBID { get; set; }
  14. public Team TeamB { get; set; }
  15. }
  16.  
  17. public class Team
  18. {
  19. [Key]
  20. public string TeamID { get; set; }
  21. public string TeamName { get; set; }
  22. public string Captain { get; set; }
  23.  
  24. [InverseProperty("TeamA")]
  25. public virtual ICollection<Tournament> TeamA { get; set; }
  26.  
  27. [InverseProperty("TeamB")]
  28. public virtual ICollection<Tournament> TeamB { get; set; }
  29. }
  30.  
  31. public class TeamVM
  32. {
  33. public string ID { get; set; }
  34. public string Name { get; set; }
  35. public string Captain { get; set; }
  36. public virtual IEnumerable<TournamentVM> Tournaments { get; set; }
  37. }
  38. public class TournamentVM
  39. {
  40. public string ID { get; set; }
  41. public DateTime Date { get; set; }
  42. public string Place { get; set; }
  43. public string Competitor { get; set; }
  44. }
  45.  
  46. public async Task<IActionResult> TheAction(string id)
  47. {
  48. Team team = await _context.Teams.Where(x => x.TeamID == id).Include(x => x.TeamA).Include(x => x.TeamB).SingleOrDefaultAsync();
  49.  
  50. TeamVM model = new TeamVM
  51. {
  52. ID = team.TeamID,
  53. Name = team.TeamName,
  54. Captain = team.Captain,
  55. Tournaments = team.TeamA.Where(x => x.TeamAID == team.TeamID).Select(x => new TournamentVM
  56. {
  57. ID = x.TournamentID,
  58. Date = x.TournamentDate,
  59. Place = x.Place,
  60. Competitor = x.TeamB.TeamName
  61. }).Concat(team.TeamB.Where(x => x.TeamBID == team.TeamID).Select(x => new TournamentVM
  62. {
  63. ID = x.TournamentID,
  64. Date = x.TournamentDate,
  65. Place = x.Place,
  66. Competitor = x.TeamA.TeamName
  67. })).OrderBy(x => x.Date)
  68. };
  69. return View(model);
  70. }
  71.  
  72. Tournaments = team.TeamA.Where(x => x.TeamAID == team.TeamID).Select(x => new TournamentVM
  73. {
  74. ID = x.TournamentID,
  75. Date = x.TournamentDate,
  76. Place = x.Place,
  77. Competitor = x.TeamB.TeamName
  78. }).Concat(team.TeamB.Where(x => x.TeamBID == team.TeamID).Select(x => new TournamentVM
  79. {
  80. ID = x.TournamentID,
  81. Date = x.TournamentDate,
  82. Place = x.Place,
  83. Competitor = x.TeamA.TeamName
  84. })).OrderBy(x => x.Date)
  85.  
  86. Tournaments = team.TeamA.Where(x => x.TeamAID == team.TeamID).Select(x => new TournamentVM
  87. {
  88. ID = x.TournamentID,
  89. Date = x.TournamentDate,
  90. Place = x.Place,
  91. Competitor = x.TeamA.TeamName //i.e. TeamA instead of TeamB
  92. }).Concat(team.TeamB.Where(x => x.TeamBID == team.TeamID).Select(x => new TournamentVM
  93. {
  94. ID = x.TournamentID,
  95. Date = x.TournamentDate,
  96. Place = x.Place,
  97. Competitor = x.TeamB.TeamName //i.e. TeamB instead of TeamA
  98. })).OrderBy(x => x.Date)
  99.  
  100. @model TeamVM
  101. <div>@Model.ID</div>
  102. <div>@Model.Name</div>
  103. <div>@Model.Captain</div>
  104. <table>
  105. <thead>
  106. <tr>
  107. <th>ID</th>
  108. <th>Date</th>
  109. <th>Place</th>
  110. <th>Competitor</th>
  111. </tr>
  112. </thead>
  113. <tbody>
  114. @foreach (var item in Model.Tournaments)
  115. {
  116. <tr>
  117. <td>@item.ID</td>
  118. <td>@item.Date</td>
  119. <td>@item.Place</td>
  120. <td>@item.Competitor</td>
  121. </tr>
  122. }
  123. </tbody>
  124. </table>
Add Comment
Please, Sign In to add comment