Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Tournament
- {
- [Key]
- public string TournamentID { get; set; }
- public DateTime TournamentDate { get; set; }
- public string Place { get; set; }
- [ForeignKey("TeamA")]
- public string TeamAID { get; set; }
- public Team TeamA { get; set; }
- [ForeignKey("TeamB")]
- public string TeamBID { get; set; }
- public Team TeamB { get; set; }
- }
- public class Team
- {
- [Key]
- public string TeamID { get; set; }
- public string TeamName { get; set; }
- public string Captain { get; set; }
- [InverseProperty("TeamA")]
- public virtual ICollection<Tournament> TeamA { get; set; }
- [InverseProperty("TeamB")]
- public virtual ICollection<Tournament> TeamB { get; set; }
- }
- public class TeamVM
- {
- public string ID { get; set; }
- public string Name { get; set; }
- public string Captain { get; set; }
- public virtual IEnumerable<TournamentVM> Tournaments { get; set; }
- }
- public class TournamentVM
- {
- public string ID { get; set; }
- public DateTime Date { get; set; }
- public string Place { get; set; }
- public string Competitor { get; set; }
- }
- public async Task<IActionResult> TheAction(string id)
- {
- Team team = await _context.Teams.Where(x => x.TeamID == id).Include(x => x.TeamA).Include(x => x.TeamB).SingleOrDefaultAsync();
- TeamVM model = new TeamVM
- {
- ID = team.TeamID,
- Name = team.TeamName,
- Captain = team.Captain,
- Tournaments = team.TeamA.Where(x => x.TeamAID == team.TeamID).Select(x => new TournamentVM
- {
- ID = x.TournamentID,
- Date = x.TournamentDate,
- Place = x.Place,
- Competitor = x.TeamB.TeamName
- }).Concat(team.TeamB.Where(x => x.TeamBID == team.TeamID).Select(x => new TournamentVM
- {
- ID = x.TournamentID,
- Date = x.TournamentDate,
- Place = x.Place,
- Competitor = x.TeamA.TeamName
- })).OrderBy(x => x.Date)
- };
- return View(model);
- }
- Tournaments = team.TeamA.Where(x => x.TeamAID == team.TeamID).Select(x => new TournamentVM
- {
- ID = x.TournamentID,
- Date = x.TournamentDate,
- Place = x.Place,
- Competitor = x.TeamB.TeamName
- }).Concat(team.TeamB.Where(x => x.TeamBID == team.TeamID).Select(x => new TournamentVM
- {
- ID = x.TournamentID,
- Date = x.TournamentDate,
- Place = x.Place,
- Competitor = x.TeamA.TeamName
- })).OrderBy(x => x.Date)
- Tournaments = team.TeamA.Where(x => x.TeamAID == team.TeamID).Select(x => new TournamentVM
- {
- ID = x.TournamentID,
- Date = x.TournamentDate,
- Place = x.Place,
- Competitor = x.TeamA.TeamName //i.e. TeamA instead of TeamB
- }).Concat(team.TeamB.Where(x => x.TeamBID == team.TeamID).Select(x => new TournamentVM
- {
- ID = x.TournamentID,
- Date = x.TournamentDate,
- Place = x.Place,
- Competitor = x.TeamB.TeamName //i.e. TeamB instead of TeamA
- })).OrderBy(x => x.Date)
- @model TeamVM
- <div>@Model.ID</div>
- <div>@Model.Name</div>
- <div>@Model.Captain</div>
- <table>
- <thead>
- <tr>
- <th>ID</th>
- <th>Date</th>
- <th>Place</th>
- <th>Competitor</th>
- </tr>
- </thead>
- <tbody>
- @foreach (var item in Model.Tournaments)
- {
- <tr>
- <td>@item.ID</td>
- <td>@item.Date</td>
- <td>@item.Place</td>
- <td>@item.Competitor</td>
- </tr>
- }
- </tbody>
- </table>
Add Comment
Please, Sign In to add comment