diff --git a/ESI.NET/ESI.NET.csproj b/ESI.NET/ESI.NET.csproj
index cb1585f..42392cf 100644
--- a/ESI.NET/ESI.NET.csproj
+++ b/ESI.NET/ESI.NET.csproj
@@ -8,7 +8,7 @@
- netcoreapp3.1;netstandard2.0;net462;net47;net471;net472;net48;net6.0;net7.0
+ net6.0;net7.0;netcoreapp3.1;netstandard2.0;net8.0
true
2023.12.12
Psianna Archeia
@@ -21,15 +21,15 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/ESI.NET/EsiClient.cs b/ESI.NET/EsiClient.cs
index 5b00fe4..b84e5e1 100644
--- a/ESI.NET/EsiClient.cs
+++ b/ESI.NET/EsiClient.cs
@@ -141,6 +141,7 @@ public void SetCharacterData(AuthorizedCharacterData data)
Universe = new UniverseLogic(client, config, data);
}
+ [Obsolete]
public void SetIfNoneMatchHeader(string eTag)
=> EsiRequest.ETag = eTag;
}
diff --git a/ESI.NET/EsiRequest.cs b/ESI.NET/EsiRequest.cs
index 73b7606..f68b700 100644
--- a/ESI.NET/EsiRequest.cs
+++ b/ESI.NET/EsiRequest.cs
@@ -4,6 +4,7 @@
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
+using System.Threading;
using System.Threading.Tasks;
namespace ESI.NET
@@ -12,7 +13,18 @@ internal static class EsiRequest
{
internal static string ETag;
- public static async Task> Execute(HttpClient client, EsiConfig config, RequestSecurity security, HttpMethod httpMethod, string endpoint, Dictionary replacements = null, string[] parameters = null, object body = null, string token = null)
+ public static async Task> Execute(
+ HttpClient client,
+ EsiConfig config,
+ RequestSecurity security,
+ HttpMethod httpMethod,
+ string endpoint,
+ string eTag = null,
+ CancellationToken cancellationToken = default,
+ Dictionary replacements = null,
+ string[] parameters = null,
+ object body = null,
+ string token = null)
{
var path = $"{httpMethod}|{endpoint}";
@@ -32,22 +44,24 @@ public static async Task> Execute(HttpClient client, EsiConfig
if (security == RequestSecurity.Authenticated)
{
if (token == null)
- throw new ArgumentException("The request endpoint requires SSO authentication and a Token has not been provided.");
+ throw new ArgumentException(
+ "The request endpoint requires SSO authentication and a Token has not been provided.");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);
}
- if (ETag != null)
+ if (eTag != null || ETag != null)
{
- request.Headers.Add("If-None-Match", $"\"{ETag}\"");
+ request.Headers.Add("If-None-Match", $"\"{eTag ?? ETag}\"");
ETag = null;
}
//Serialize post body data
if (body != null)
- request.Content = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json");
+ request.Content =
+ new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json");
//Output final object
- return new EsiResponse(await client.SendAsync(request).ConfigureAwait(false), path);
+ return new EsiResponse(await client.SendAsync(request, cancellationToken).ConfigureAwait(false), path);
}
public enum RequestSecurity
@@ -56,4 +70,4 @@ public enum RequestSecurity
Authenticated
}
}
-}
+}
\ No newline at end of file
diff --git a/ESI.NET/Logic/AllianceLogic.cs b/ESI.NET/Logic/AllianceLogic.cs
index 2433f17..b2e1467 100644
--- a/ESI.NET/Logic/AllianceLogic.cs
+++ b/ESI.NET/Logic/AllianceLogic.cs
@@ -2,6 +2,7 @@
using ESI.NET.Models.Alliance;
using System.Collections.Generic;
using System.Net.Http;
+using System.Threading;
using System.Threading.Tasks;
using static ESI.NET.EsiRequest;
@@ -12,22 +13,32 @@ public class AllianceLogic
private readonly HttpClient _client;
private readonly EsiConfig _config;
- public AllianceLogic(HttpClient client, EsiConfig config) { _client = client; _config = config; }
+ public AllianceLogic(HttpClient client, EsiConfig config)
+ {
+ _client = client;
+ _config = config;
+ }
///
/// /alliances/
///
///
- public async Task> All()
- => await Execute(_client, _config, RequestSecurity.Public, HttpMethod.Get, "/alliances/");
+ public async Task> All(string eTag = null, CancellationToken cancellationToken = default)
+ => await Execute(_client, _config, RequestSecurity.Public, HttpMethod.Get, "/alliances/",
+ eTag: eTag,
+ cancellationToken: cancellationToken);
///
/// /alliances/{alliance_id}/
///
///
///
- public async Task> Information(int alliance_id)
- => await Execute(_client, _config, RequestSecurity.Public, HttpMethod.Get, "/alliances/{alliance_id}/",
+ public async Task> Information(int alliance_id, string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute(_client, _config, RequestSecurity.Public, HttpMethod.Get,
+ "/alliances/{alliance_id}/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "alliance_id", alliance_id.ToString() }
@@ -38,8 +49,12 @@ public async Task> Information(int alliance_id)
///
///
///
- public async Task> Corporations(int alliance_id)
- => await Execute(_client, _config, RequestSecurity.Public, HttpMethod.Get, "/alliances/{alliance_id}/corporations/",
+ public async Task> Corporations(int alliance_id, string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute(_client, _config, RequestSecurity.Public, HttpMethod.Get,
+ "/alliances/{alliance_id}/corporations/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "alliance_id", alliance_id.ToString() }
@@ -50,8 +65,12 @@ public async Task> Corporations(int alliance_id)
///
///
///
- public async Task> Icons(int alliance_id)
- => await Execute(_client, _config, RequestSecurity.Public, HttpMethod.Get, "/alliances/{alliance_id}/icons/",
+ public async Task> Icons(int alliance_id, string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute(_client, _config, RequestSecurity.Public, HttpMethod.Get,
+ "/alliances/{alliance_id}/icons/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "alliance_id", alliance_id.ToString() }
diff --git a/ESI.NET/Logic/AssetsLogic.cs b/ESI.NET/Logic/AssetsLogic.cs
index 7a3d86d..0bedda8 100644
--- a/ESI.NET/Logic/AssetsLogic.cs
+++ b/ESI.NET/Logic/AssetsLogic.cs
@@ -2,6 +2,7 @@
using ESI.NET.Models.SSO;
using System.Collections.Generic;
using System.Net.Http;
+using System.Threading;
using System.Threading.Tasks;
using static ESI.NET.EsiRequest;
@@ -32,8 +33,12 @@ public AssetsLogic(HttpClient client, EsiConfig config, AuthorizedCharacterData
///
///
///
- public async Task>> ForCharacter(int page = 1)
- => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/characters/{character_id}/assets/",
+ public async Task>> ForCharacter(int page = 1, string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/characters/{character_id}/assets/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
@@ -49,8 +54,11 @@ public async Task>> ForCharacter(int page = 1)
///
///
///
- public async Task>> LocationsForCharacter(List item_ids)
- => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Post, "/characters/{character_id}/assets/locations/",
+ public async Task>> LocationsForCharacter(List item_ids,
+ CancellationToken cancellationToken = default)
+ => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Post,
+ "/characters/{character_id}/assets/locations/",
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
@@ -63,8 +71,11 @@ public async Task>> LocationsForCharacter(List
///
///
- public async Task>> NamesForCharacter(List item_ids)
- => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Post, "/characters/{character_id}/assets/names/",
+ public async Task>> NamesForCharacter(List item_ids,
+ CancellationToken cancellationToken = default)
+ => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Post,
+ "/characters/{character_id}/assets/names/",
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
@@ -78,8 +89,12 @@ public async Task>> NamesForCharacter(List item
///
///
///
- public async Task>> ForCorporation(int page = 1)
- => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/corporations/{corporation_id}/assets/",
+ public async Task>> ForCorporation(int page = 1, string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/corporations/{corporation_id}/assets/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "corporation_id", corporation_id.ToString() }
@@ -95,8 +110,11 @@ public async Task>> ForCorporation(int page = 1)
///
///
///
- public async Task>> LocationsForCorporation(List item_ids)
- => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Post, "/corporations/{corporation_id}/assets/locations/",
+ public async Task>> LocationsForCorporation(List item_ids,
+ CancellationToken cancellationToken = default)
+ => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Post,
+ "/corporations/{corporation_id}/assets/locations/",
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "corporation_id", corporation_id.ToString() }
@@ -109,8 +127,10 @@ public async Task>> LocationsForCorporation(List<
///
///
///
- public async Task>> NamesForCorporation(List item_ids)
- => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Post, "/corporations/{corporation_id}/assets/names/",
+ public async Task>> NamesForCorporation(List item_ids, CancellationToken cancellationToken = default)
+ => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Post,
+ "/corporations/{corporation_id}/assets/names/",
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "corporation_id", corporation_id.ToString() }
diff --git a/ESI.NET/Logic/BookmarksLogic.cs b/ESI.NET/Logic/BookmarksLogic.cs
index 3c5089a..42c95af 100644
--- a/ESI.NET/Logic/BookmarksLogic.cs
+++ b/ESI.NET/Logic/BookmarksLogic.cs
@@ -2,6 +2,7 @@
using ESI.NET.Models.SSO;
using System.Collections.Generic;
using System.Net.Http;
+using System.Threading;
using System.Threading.Tasks;
using static ESI.NET.EsiRequest;
@@ -14,7 +15,9 @@ public class BookmarksLogic
private readonly AuthorizedCharacterData _data;
private readonly int character_id, corporation_id;
- public BookmarksLogic(HttpClient client, EsiConfig config, AuthorizedCharacterData data = null)
+ public BookmarksLogic(HttpClient client, EsiConfig config, AuthorizedCharacterData data = null,
+ string eTag = null,
+ CancellationToken cancellationToken = default)
{
_client = client;
_config = config;
@@ -31,8 +34,12 @@ public BookmarksLogic(HttpClient client, EsiConfig config, AuthorizedCharacterDa
/// /characters/{character_id}/bookmarks/
///
///
- public async Task>> ForCharacter(int page = 1)
- => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/characters/{character_id}/bookmarks/",
+ public async Task>> ForCharacter(int page = 1, string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/characters/{character_id}/bookmarks/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
@@ -47,8 +54,12 @@ public async Task>> ForCharacter(int page = 1)
/// /characters/{character_id}/bookmarks/folders/
///
///
- public async Task>> FoldersForCharacter(int page = 1)
- => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/characters/{character_id}/bookmarks/folders/",
+ public async Task>> FoldersForCharacter(int page = 1, string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/characters/{character_id}/bookmarks/folders/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
@@ -63,8 +74,12 @@ public async Task>> FoldersForCharacter(int page = 1)
/// /corporations/{corporation_id}/bookmarks/
///
///
- public async Task>> ForCorporation(int page = 1)
- => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/corporations/{corporation_id}/bookmarks/",
+ public async Task>> ForCorporation(int page = 1, string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/corporations/{corporation_id}/bookmarks/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "corporation_id", corporation_id.ToString() }
@@ -79,8 +94,12 @@ public async Task>> ForCorporation(int page = 1)
/// /corporations/{corporation_id}/bookmarks/folders/
///
///
- public async Task>> FoldersForCorporation(int page = 1)
- => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/corporations/{corporation_id}/bookmarks/folders/",
+ public async Task>> FoldersForCorporation(int page = 1, string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/corporations/{corporation_id}/bookmarks/folders/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "corporation_id", corporation_id.ToString() }
diff --git a/ESI.NET/Logic/CalendarLogic.cs b/ESI.NET/Logic/CalendarLogic.cs
index 18da2b6..83db6a7 100644
--- a/ESI.NET/Logic/CalendarLogic.cs
+++ b/ESI.NET/Logic/CalendarLogic.cs
@@ -3,6 +3,7 @@
using ESI.NET.Models.SSO;
using System.Collections.Generic;
using System.Net.Http;
+using System.Threading;
using System.Threading.Tasks;
using static ESI.NET.EsiRequest;
@@ -29,8 +30,12 @@ public CalendarLogic(HttpClient client, EsiConfig config, AuthorizedCharacterDat
/// /characters/{character_id}/calendar/
///
///
- public async Task>> Events()
- => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/characters/{character_id}/calendar/",
+ public async Task>> Events(string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/characters/{character_id}/calendar/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
@@ -42,8 +47,12 @@ public async Task>> Events()
///
///
///
- public async Task> Event(int event_id)
- => await Execute(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/characters/{character_id}/calendar/{event_id}/",
+ public async Task> Event(int event_id, string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/characters/{character_id}/calendar/{event_id}/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() },
@@ -57,8 +66,11 @@ public async Task> Event(int event_id)
///
///
///
- public async Task> Respond(int event_id, EventResponse eventResponse)
- => await Execute(_client, _config, RequestSecurity.Authenticated, HttpMethod.Put, "/characters/{character_id}/calendar/{event_id}/",
+ public async Task> Respond(int event_id, EventResponse eventResponse,
+ CancellationToken cancellationToken = default)
+ => await Execute(_client, _config, RequestSecurity.Authenticated, HttpMethod.Put,
+ "/characters/{character_id}/calendar/{event_id}/",
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() },
@@ -75,8 +87,12 @@ public async Task> Respond(int event_id, EventResponse eventR
///
///
///
- public async Task>> Responses(int event_id)
- => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/characters/{character_id}/calendar/{event_id}/attendees/",
+ public async Task>> Responses(int event_id, string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/characters/{character_id}/calendar/{event_id}/attendees/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() },
diff --git a/ESI.NET/Logic/CharacterLogic.cs b/ESI.NET/Logic/CharacterLogic.cs
index 965ae03..eeb017a 100644
--- a/ESI.NET/Logic/CharacterLogic.cs
+++ b/ESI.NET/Logic/CharacterLogic.cs
@@ -3,6 +3,7 @@
using ESI.NET.Models.SSO;
using System.Collections.Generic;
using System.Net.Http;
+using System.Threading;
using System.Threading.Tasks;
using static ESI.NET.EsiRequest;
@@ -30,8 +31,11 @@ public CharacterLogic(HttpClient client, EsiConfig config, AuthorizedCharacterDa
///
/// dynamic = long
///
- public async Task>> Affiliation(int[] character_ids)
- => await Execute>(_client, _config, RequestSecurity.Public, HttpMethod.Post, "/characters/affiliation/",
+ public async Task>> Affiliation(int[] character_ids,
+ CancellationToken cancellationToken = default)
+ => await Execute>(_client, _config, RequestSecurity.Public, HttpMethod.Post,
+ "/characters/affiliation/",
+ cancellationToken: cancellationToken,
body: character_ids);
///
@@ -39,8 +43,12 @@ public async Task>> Affiliation(int[] character_id
///
///
///
- public async Task>> Names(int[] character_ids)
- => await Execute>(_client, _config, RequestSecurity.Public, HttpMethod.Get, "/characters/names/",
+ public async Task>> Names(int[] character_ids, string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute>(_client, _config, RequestSecurity.Public, HttpMethod.Get,
+ "/characters/names/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
parameters: new string[]
{
$"character_ids={string.Join(",", character_ids)}"
@@ -51,8 +59,12 @@ public async Task>> Names(int[] character_ids)
///
///
///
- public async Task> Information(int character_id)
- => await Execute(_client, _config, RequestSecurity.Public, HttpMethod.Get, "/characters/{character_id}/",
+ public async Task> Information(int character_id, string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute(_client, _config, RequestSecurity.Public, HttpMethod.Get,
+ "/characters/{character_id}/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
@@ -62,8 +74,12 @@ public async Task> Information(int character_id)
/// /characters/{character_id}/agents_research/
///
///
- public async Task>> AgentsResearch()
- => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/characters/{character_id}/agents_research/",
+ public async Task>> AgentsResearch(string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/characters/{character_id}/agents_research/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
@@ -75,8 +91,12 @@ public async Task>> AgentsResearch()
///
/// Which page of results to return
///
- public async Task>> Blueprints(int page = 1)
- => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/characters/{character_id}/blueprints/",
+ public async Task>> Blueprints(int page = 1, string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/characters/{character_id}/blueprints/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
@@ -91,8 +111,12 @@ public async Task>> Blueprints(int page = 1)
/// /characters/{character_id}/chat_channels/
///
///
- public async Task>> ChatChannels()
- => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/characters/{character_id}/chat_channels/",
+ public async Task>> ChatChannels(string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/characters/{character_id}/chat_channels/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
@@ -104,8 +128,12 @@ public async Task>> ChatChannels()
///
///
///
- public async Task>> CorporationHistory(int character_id)
- => await Execute>(_client, _config, RequestSecurity.Public, HttpMethod.Get, "/characters/{character_id}/corporationhistory/",
+ public async Task>> CorporationHistory(int character_id, string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute>(_client, _config, RequestSecurity.Public, HttpMethod.Get,
+ "/characters/{character_id}/corporationhistory/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
@@ -116,8 +144,10 @@ public async Task>> CorporationHistory(int
///
/// The target characters to calculate the charge for
///
- public async Task> CSPA(object character_ids)
- => await Execute(_client, _config, RequestSecurity.Authenticated, HttpMethod.Post, "/characters/{character_id}/cspa/",
+ public async Task> CSPA(object character_ids, CancellationToken cancellationToken = default)
+ => await Execute(_client, _config, RequestSecurity.Authenticated, HttpMethod.Post,
+ "/characters/{character_id}/cspa/",
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
@@ -129,8 +159,12 @@ public async Task> CSPA(object character_ids)
/// /characters/{character_id}/fatigue/
///
///
- public async Task> Fatigue()
- => await Execute(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/characters/{character_id}/fatigue/",
+ public async Task> Fatigue(string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/characters/{character_id}/fatigue/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
@@ -141,8 +175,12 @@ public async Task> Fatigue()
/// /characters/{character_id}/medals/
///
///
- public async Task>> Medals()
- => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/characters/{character_id}/medals/",
+ public async Task>> Medals(string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/characters/{character_id}/medals/",
+ eTag: eTag,
+ cancellationToken,
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
@@ -153,8 +191,12 @@ public async Task>> Medals()
/// /characters/{character_id}/notifications/
///
///
- public async Task>> Notifications()
- => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/characters/{character_id}/notifications/",
+ public async Task>> Notifications(string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/characters/{character_id}/notifications/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
@@ -166,7 +208,8 @@ public async Task>> Notifications()
///
///
public async Task>> ContactNotifications()
- => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/characters/{character_id}/notifications/contacts/",
+ => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/characters/{character_id}/notifications/contacts/",
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
@@ -179,7 +222,8 @@ public async Task>> ContactNotifications()
///
///
public async Task> Portrait(int character_id)
- => await Execute(_client, _config, RequestSecurity.Public, HttpMethod.Get, "/characters/{character_id}/portrait/",
+ => await Execute(_client, _config, RequestSecurity.Public, HttpMethod.Get,
+ "/characters/{character_id}/portrait/",
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
@@ -190,7 +234,8 @@ public async Task> Portrait(int character_id)
///
///
public async Task> Roles()
- => await Execute(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/characters/{character_id}/roles/",
+ => await Execute(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/characters/{character_id}/roles/",
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
@@ -202,7 +247,8 @@ public async Task> Roles()
///
///
public async Task>> Standings()
- => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/characters/{character_id}/standings/",
+ => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/characters/{character_id}/standings/",
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
@@ -214,7 +260,8 @@ public async Task>> Standings()
///
///
public async Task>> Titles()
- => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/characters/{character_id}/titles/",
+ => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/characters/{character_id}/titles/",
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
diff --git a/ESI.NET/Logic/ClonesLogic.cs b/ESI.NET/Logic/ClonesLogic.cs
index a03e7c4..e453cc4 100644
--- a/ESI.NET/Logic/ClonesLogic.cs
+++ b/ESI.NET/Logic/ClonesLogic.cs
@@ -2,6 +2,7 @@
using ESI.NET.Models.SSO;
using System.Collections.Generic;
using System.Net.Http;
+using System.Threading;
using System.Threading.Tasks;
using static ESI.NET.EsiRequest;
@@ -28,8 +29,12 @@ public ClonesLogic(HttpClient client, EsiConfig config, AuthorizedCharacterData
/// /characters/{character_id}/clones/
///
///
- public async Task> List()
- => await Execute(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/characters/{character_id}/clones/",
+ public async Task> List(string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/characters/{character_id}/clones/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
@@ -40,8 +45,12 @@ public async Task> List()
/// /characters/{character_id}/implants/
///
///
- public async Task> Implants()
- => await Execute(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/characters/{character_id}/implants/",
+ public async Task> Implants(string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/characters/{character_id}/implants/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
diff --git a/ESI.NET/Logic/ContactsLogic.cs b/ESI.NET/Logic/ContactsLogic.cs
index 55a25a7..52d3757 100644
--- a/ESI.NET/Logic/ContactsLogic.cs
+++ b/ESI.NET/Logic/ContactsLogic.cs
@@ -3,6 +3,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
+using System.Threading;
using System.Threading.Tasks;
using static ESI.NET.EsiRequest;
@@ -35,8 +36,12 @@ public ContactsLogic(HttpClient client, EsiConfig config, AuthorizedCharacterDat
///
///
///
- public async Task>> ListForCharacter(int page = 1)
- => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/characters/{character_id}/contacts/",
+ public async Task>> ListForCharacter(int page = 1,
+ string eTag = null, CancellationToken cancellationToken = default)
+ => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/characters/{character_id}/contacts/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
@@ -52,8 +57,12 @@ public async Task>> ListForCharacter(int page = 1)
///
///
///
- public async Task>> ListForCorporation(int page = 1)
- => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/corporations/{corporation_id}/contacts/",
+ public async Task>> ListForCorporation(int page = 1, string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/corporations/{corporation_id}/contacts/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "corporation_id", corporation_id.ToString() }
@@ -69,8 +78,12 @@ public async Task>> ListForCorporation(int page = 1)
///
///
///
- public async Task>> ListForAlliance(int page = 1)
- => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get, "/alliances/{alliance_id}/contacts/",
+ public async Task>> ListForAlliance(int page = 1, string eTag = null,
+ CancellationToken cancellationToken = default)
+ => await Execute>(_client, _config, RequestSecurity.Authenticated, HttpMethod.Get,
+ "/alliances/{alliance_id}/contacts/",
+ eTag: eTag,
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "alliance_id", alliance_id.ToString() }
@@ -89,7 +102,8 @@ public async Task>> ListForAlliance(int page = 1)
///
///
///
- public async Task> Add(int[] contact_ids, decimal standing, int[] label_ids = null, bool? watched = null)
+ public async Task> Add(int[] contact_ids, decimal standing, int[] label_ids = null,
+ bool? watched = null,CancellationToken cancellationToken = default)
{
var body = contact_ids;
@@ -101,7 +115,9 @@ public async Task> Add(int[] contact_ids, decimal standing, i
if (watched != null)
parameters.Add($"watched={watched}");
- return await Execute(_client, _config, RequestSecurity.Authenticated, HttpMethod.Post, "/characters/{character_id}/contacts/",
+ return await Execute(_client, _config, RequestSecurity.Authenticated, HttpMethod.Post,
+ "/characters/{character_id}/contacts/",
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
@@ -119,7 +135,8 @@ public async Task> Add(int[] contact_ids, decimal standing, i
///
///
///
- public async Task> Update(int[] contact_ids, decimal standing, int[] label_ids = null, bool? watched = null)
+ public async Task> Update(int[] contact_ids, decimal standing, int[] label_ids = null,
+ bool? watched = null, CancellationToken cancellationToken = default)
{
var body = contact_ids;
@@ -131,7 +148,9 @@ public async Task> Update(int[] contact_ids, decimal standin
if (watched != null)
parameters.Add($"watched={watched}");
- return await Execute(_client, _config, RequestSecurity.Authenticated, HttpMethod.Put, "/characters/{character_id}/contacts/",
+ return await Execute(_client, _config, RequestSecurity.Authenticated, HttpMethod.Put,
+ "/characters/{character_id}/contacts/",
+ cancellationToken: cancellationToken,
replacements: new Dictionary()
{
{ "character_id", character_id.ToString() }
@@ -146,8 +165,10 @@ public async Task> Update(int[] contact_ids, decimal standin
///
///
///
- public async Task> Delete(int[] contact_ids)
- => await Execute(_client, _config, RequestSecurity.Authenticated, HttpMethod.Delete, "/characters/{character_id}/contacts/",
+ public async Task