/// <inheritdoc cref="FortniteService.MarkItemSeen"/> public async Task <McpResponse> MarkItemSeen(Profile profile, MarkItemSeen payload, int revision = -1) => await FortniteService.MarkItemSeen(this, profile, payload, revision);
/// <summary> /// Executes the MarkItemSeen command which marks an item within the profile as seen for the account bound to the provided <see cref="OAuthSession"/>. /// </summary> /// <param name="oAuthSession">The <see cref="OAuthSession"/> to use for authentication.</param> /// <param name="profile">The profile to retrieve the profile data of.</param> /// <param name="revision">The operation revision. This parameter is optional.</param> /// <param name="payload">The payload for the request.</param> /// <returns>The <see cref="McpResponse"/> of the executed command.</returns> internal static async Task <McpResponse> MarkItemSeen(OAuthSession oAuthSession, Profile profile, MarkItemSeen payload, int revision = -1) { var profileId = profile.GetAttribute <ValueAttribute>().Value; // We're using a using statement so that the initialised client is disposed of when the code block is exited. using var client = new WebClient { Headers = { // This is so Epic Games' API knows what kind of data we're providing. [HttpRequestHeader.ContentType] = "application/json", // Set the Authorization header to the access token from the provided OAuthSession. [HttpRequestHeader.Authorization] = $"bearer {oAuthSession.AccessToken}" } }; // Use our request helper to make a POST request, and return the response data deserialized into the appropriate type. return(await client.PostDataAsync <McpResponse>(Endpoints.Fortnite.Mcp.MarkItemSeen(oAuthSession.AccountId, profileId, revision), JsonConvert.SerializeObject(payload)).ConfigureAwait(false)); }