public async Task <IActionResult> Get() { var invitations = await _gameInvitationService.All(); var responseConfig = new HALModelConfig { LinkBase = $"{Request.Scheme}://{Request.Host.ToString()}", ForceHAL = Request.ContentType == "application/hal+json" ? true : false }; var response = new HALResponse(responseConfig); response.AddLinks(new Link("self", "/GameInvitation"), new Link("confirm", "/GameInvitation/{id}/Confirm")); List <HALResponse> invitationsResponses = new List <HALResponse>(); foreach (var invitation in invitations) { var rInv = new HALResponse(invitation, responseConfig); rInv.AddLinks(new Link("self", "/GameInvitation/" + invitation.Id)); rInv.AddLinks(new Link("confirm", $"/GameInvitation/{invitation.Id}/confirm")); var invitedPlayer = _userService.GetUserByEmail(invitation.EmailTo); rInv.AddEmbeddedResource("invitedPlayer", invitedPlayer, new Link[] { new Link("self", $"/User/{invitedPlayer.Id}") }); var invitedBy = _userService.GetUserByEmail(invitation.InvitedBy); rInv.AddEmbeddedResource("invitedBy", invitedBy, new Link[] { new Link("self", $"/User/{invitedBy.Id}") }); invitationsResponses.Add(rInv); } response.AddEmbeddedCollection("invitations", invitationsResponses); return(this.HAL(response)); }
public async Task <IEnumerable <GameInvitationModel> > Get() { return(await _gameInvitationService.All()); }