diff --git a/GW2EIDPSReport/DPSReportController.cs b/GW2EIDPSReport/DPSReportController.cs index 3102d8b6ed..e336576e61 100644 --- a/GW2EIDPSReport/DPSReportController.cs +++ b/GW2EIDPSReport/DPSReportController.cs @@ -48,15 +48,15 @@ public GetUploadsParameters() } ///////////////// URL Utilities - private static readonly string MainEntryPoint = "https://dps.report"; - private static readonly string SecondaryEntryPoint = "http://a.dps.report"; - private static readonly string TertiaryEntryPoint = "https://b.dps.report"; + private const string MainEntryPoint = "https://dps.report"; + private const string SecondaryEntryPoint = "http://a.dps.report"; + private const string TertiaryEntryPoint = "https://b.dps.report"; - private static readonly string UploadContentURL = "/uploadContent"; - private static readonly string GetUploadsURL = "/getUploads"; - private static readonly string GetUserTokenURL = "/getUserToken"; - private static readonly string GetUploadMetadataURL = "/getUploadMetadata"; - private static readonly string GetJsonURL = "/getJson"; + private const string UploadContentURL = "/uploadContent"; + private const string GetUploadsURL = "/getUploads"; + private const string GetUserTokenURL = "/getUserToken"; + private const string GetUploadMetadataURL = "/getUploadMetadata"; + private const string GetJsonURL = "/getJson"; // https://stackoverflow.com/questions/273313/randomize-a-listt private static readonly Random rng = new(); @@ -142,7 +142,7 @@ private static List GetUserTokenURLs() }; return Shuffle(urls); } - private static List GetUploadMetadataURLs(string id, string permalink) + private static List GetUploadMetadataURLs(string? id, string? permalink) { string url = GetUploadMetadataURL; if (id != null) @@ -161,7 +161,7 @@ private static List GetUploadMetadataURLs(string id, string permalink) }; return Shuffle(urls); } - private static List GetJsonURLs(string id, string permalink) + private static List GetJsonURLs(string? id, string? permalink) { string url = GetJsonURL; if (id != null) @@ -181,7 +181,7 @@ private static List GetJsonURLs(string id, string permalink) return Shuffle(urls); } ///////////////// APIs - public static DPSReportUploadObject UploadUsingEI(FileInfo fi, TraceHandler traceHandler, string userToken, bool anonymous = false, bool detailedWvW = false) + public static DPSReportUploadObject? UploadUsingEI(FileInfo fi, TraceHandler traceHandler, string userToken, bool anonymous = false, bool detailedWvW = false) { string fileName = fi.Name; byte[] fileContents = File.ReadAllBytes(fi.FullName); @@ -194,7 +194,7 @@ HttpContent contentCreator() return multiPartContent; } - DPSReportUploadObject response = GetDPSReportResponse("UploadUsingEI", GetUploadContentURLs(userToken, anonymous, detailedWvW), traceHandler, contentCreator); + DPSReportUploadObject? response = GetDPSReportResponse("UploadUsingEI", GetUploadContentURLs(userToken, anonymous, detailedWvW), traceHandler, contentCreator); if (response != null && response.Error != null) { traceHandler("UploadUsingEI generated an error - " + response.Error); @@ -202,20 +202,20 @@ HttpContent contentCreator() return response; } - public static DPSReportGetUploadsObject GetUploads(TraceHandler traceHandler, string userToken, GetUploadsParameters parameters) + public static DPSReportGetUploadsObject? GetUploads(TraceHandler traceHandler, string userToken, GetUploadsParameters parameters) { return GetDPSReportResponse("GetUploads", GetGetUploadsURLs(parameters, userToken), traceHandler); } public static string GenerateUserToken(TraceHandler traceHandler) { - DPSReportUserTokenResponse responseItem = GetDPSReportResponse("GenerateUserToken", GetUserTokenURLs(), traceHandler); + DPSReportUserTokenResponse? responseItem = GetDPSReportResponse("GenerateUserToken", GetUserTokenURLs(), traceHandler); if (responseItem != null) { return responseItem.UserToken; } return ""; } - public static DPSReportUploadObject GetUploadMetaDataWithID(string id, TraceHandler traceHandler) + public static DPSReportUploadObject? GetUploadMetaDataWithID(string id, TraceHandler traceHandler) { if (id == null || id.Length == 0) { @@ -223,7 +223,7 @@ public static DPSReportUploadObject GetUploadMetaDataWithID(string id, TraceHand } return GetDPSReportResponse("GetUploadMetaDataWithID", GetUploadMetadataURLs(id, null), traceHandler); } - public static DPSReportUploadObject GetUploadMetaDataWithPermalink(string permalink, TraceHandler traceHandler) + public static DPSReportUploadObject? GetUploadMetaDataWithPermalink(string permalink, TraceHandler traceHandler) { if (permalink == null || permalink.Length == 0) { @@ -232,7 +232,7 @@ public static DPSReportUploadObject GetUploadMetaDataWithPermalink(string permal return GetDPSReportResponse("GetUploadMetaDataWithPermalink", GetUploadMetadataURLs(null, permalink), traceHandler); } - public static T GetJsonWithID(string id, TraceHandler traceHandler) + public static T? GetJsonWithID(string id, TraceHandler traceHandler) { if (id == null || id.Length == 0) { @@ -240,7 +240,7 @@ public static T GetJsonWithID(string id, TraceHandler traceHandler) } return GetDPSReportResponse("GetJsonWithID", GetJsonURLs(id, null), traceHandler); } - public static T GetJsonWithPermalink(string permalink, TraceHandler traceHandler) + public static T? GetJsonWithPermalink(string permalink, TraceHandler traceHandler) { if (permalink == null || permalink.Length == 0) { @@ -249,7 +249,7 @@ public static T GetJsonWithPermalink(string permalink, TraceHandler traceHand return GetDPSReportResponse("GetJsonWithPermalink", GetJsonURLs(null, permalink), traceHandler); } ///////////////// Response Utilities - private static T GetDPSReportResponse(string requestName, List URIs, TraceHandler traceHandler, Func content = null) + private static T? GetDPSReportResponse(string requestName, List URIs, TraceHandler traceHandler, Func? content = null) { const int tentatives = 2; for (int i = 0; i < tentatives; i++) @@ -280,7 +280,7 @@ private static T GetDPSReportResponse(string requestName, List URIs, if (responseContent != null) { var stringContents = responseContent.ReadAsStringAsync().Result; - T item = JsonSerializer.Deserialize(stringContents, DeserializerSettings); + T item = JsonSerializer.Deserialize(stringContents, DeserializerSettings)!; traceHandler(requestName + " tentative successful"); return item; } diff --git a/GW2EIDPSReport/DPSReportJsons/DPSReportUploadObject.cs b/GW2EIDPSReport/DPSReportJsons/DPSReportUploadObject.cs index a4ba409b7f..cdf5a53479 100644 --- a/GW2EIDPSReport/DPSReportJsons/DPSReportUploadObject.cs +++ b/GW2EIDPSReport/DPSReportJsons/DPSReportUploadObject.cs @@ -39,14 +39,14 @@ public Dictionary Players { get { - var json = PlayersJson.ToString(); + var json = PlayersJson.ToString()!; try { - return JsonSerializer.Deserialize>(json); + return JsonSerializer.Deserialize>(json)!; } catch { - return new Dictionary(); + return []; } } } diff --git a/GW2EIDPSReport/GW2EIDPSReport.csproj b/GW2EIDPSReport/GW2EIDPSReport.csproj index cf001ae78b..b4b466a93f 100644 --- a/GW2EIDPSReport/GW2EIDPSReport.csproj +++ b/GW2EIDPSReport/GW2EIDPSReport.csproj @@ -1,9 +1,9 @@  - netstandard2.1 + net8 12.0 - disable + enable enable Debug;Release;NoRewards;Trace diff --git a/GW2EIDiscord/GW2EIDiscord.csproj b/GW2EIDiscord/GW2EIDiscord.csproj index 6054d5a6e8..4b87fd43c0 100644 --- a/GW2EIDiscord/GW2EIDiscord.csproj +++ b/GW2EIDiscord/GW2EIDiscord.csproj @@ -1,9 +1,9 @@  - netstandard2.1 + net8 12.0 - disable + enable enable Debug;Release;NoRewards;Trace true diff --git a/GW2EIParserCommons/ProgramHelper.cs b/GW2EIParserCommons/ProgramHelper.cs index 27b3a2f6f3..2961c9691b 100644 --- a/GW2EIParserCommons/ProgramHelper.cs +++ b/GW2EIParserCommons/ProgramHelper.cs @@ -185,11 +185,11 @@ private string[] UploadOperation(FileInfo fInfo, ParsedEvtcLog originalLog, Oper originalLog.FightData.Logic.ParseMode == GW2EIEvtcParser.EncounterLogic.FightLogic.ParseModeEnum.Benchmark ); //Upload Process - string[] uploadresult = new string[2] { "", "" }; + string[] uploadresult = ["", ""]; if (Settings.UploadToDPSReports) { originalController.UpdateProgressWithCancellationCheck("DPSReport: Uploading"); - DPSReportUploadObject response = DPSReportController.UploadUsingEI(fInfo, str => originalController.UpdateProgress("DPSReport: " + str), Settings.DPSReportUserToken, + DPSReportUploadObject? response = DPSReportController.UploadUsingEI(fInfo, str => originalController.UpdateProgress("DPSReport: " + str), Settings.DPSReportUserToken, originalLog.ParserSettings.AnonymousPlayers, originalLog.ParserSettings.DetailedWvWParse); uploadresult[0] = response != null ? response.Permalink : "Upload process failed"; @@ -218,7 +218,7 @@ private string[] UploadOperation(FileInfo fInfo, ParsedEvtcLog originalLog, Oper } else { - string? accName = originalLog.LogData.PoV != null ? originalLog.LogData.PoVAccount : null; + string accName = originalLog.LogData.PoV != null ? originalLog.LogData.PoVAccount : "-"; if (WingmanController.CheckUploadPossible(fInfo, accName, originalLog.FightData.TriggerID, str => originalController.UpdateProgress("Wingman: " + str))) { diff --git a/GW2EIWingman/GW2EIWingman.csproj b/GW2EIWingman/GW2EIWingman.csproj index 149190a588..ec719db378 100644 --- a/GW2EIWingman/GW2EIWingman.csproj +++ b/GW2EIWingman/GW2EIWingman.csproj @@ -1,9 +1,9 @@  - netstandard2.1 + net8 12.0 - disable + enable enable Debug;Release;NoRewards;Trace diff --git a/GW2EIWingman/WingmanController.cs b/GW2EIWingman/WingmanController.cs index 5107b902df..72b3cad687 100644 --- a/GW2EIWingman/WingmanController.cs +++ b/GW2EIWingman/WingmanController.cs @@ -27,15 +27,15 @@ public static class WingmanController ///////////////// URL Utilities private const string BaseURL = "https://gw2wingman.nevermindcreations.de/"; - private readonly static string TestConnectionURL = BaseURL + "testConnection"; + private const string TestConnectionURL = BaseURL + "testConnection"; private const string BaseAPIURL = BaseURL + "api/"; - private readonly static string EIVersionURL = BaseAPIURL + "EIversion"; - private readonly static string ImportLogQueuedURL = BaseAPIURL + "importLogQueued"; - private readonly static string CheckLogQueuedURL = BaseAPIURL + "checkLogQueued"; - private readonly static string CheckLogQueuedOrDBURL = BaseAPIURL + "checkLogQueuedOrDB"; - private readonly static string CheckUploadURL = BaseURL + "checkUpload"; - private readonly static string UploadProcessedURL = BaseURL + "uploadProcessed"; + private const string EIVersionURL = BaseAPIURL + "EIversion"; + private const string ImportLogQueuedURL = BaseAPIURL + "importLogQueued"; + private const string CheckLogQueuedURL = BaseAPIURL + "checkLogQueued"; + private const string CheckLogQueuedOrDBURL = BaseAPIURL + "checkLogQueuedOrDB"; + private const string CheckUploadURL = BaseURL + "checkUpload"; + private const string UploadProcessedURL = BaseURL + "uploadProcessed"; private static bool IsDPSReportLinkValid(string dpsReportLink, TraceHandler traceHandler) { @@ -72,7 +72,7 @@ private static bool CheckConnection(TraceHandler traceHandler) private static bool VerifyEIVersion(Version parserVersion, TraceHandler traceHandler) { - string returnedVersion = _GetWingmanResponse("EIVersionURL", EIVersionURL, traceHandler, HttpMethod.Get); + string? returnedVersion = _GetWingmanResponse("EIVersionURL", EIVersionURL, traceHandler, HttpMethod.Get); if (returnedVersion == null) { traceHandler("Could not fetch version from Wingman"); @@ -90,13 +90,13 @@ private static bool VerifyEIVersion(Version parserVersion, TraceHandler traceHan return true; } - public static bool CanBeUsed(Version parserVersion, TraceHandler traceHandler) + public static bool CanBeUsed(Version? parserVersion, TraceHandler traceHandler) { return CheckConnection(traceHandler) && (parserVersion == null || VerifyEIVersion(parserVersion, traceHandler)); } // - public static WingmanCheckLogQueuedOrDBObject GetCheckLogQueuedOrDB(string dpsReportLink, TraceHandler traceHandler) + public static WingmanCheckLogQueuedOrDBObject? GetCheckLogQueuedOrDB(string dpsReportLink, TraceHandler traceHandler) { if (!IsDPSReportLinkValid(dpsReportLink, traceHandler)) { @@ -104,7 +104,7 @@ public static WingmanCheckLogQueuedOrDBObject GetCheckLogQueuedOrDB(string dpsRe } try { - return JsonConvert.DeserializeObject(GetWingmanResponse("CheckLogQueuedOrDB", GetCheckLogQueuedOrDBURL(dpsReportLink), traceHandler, null, HttpMethod.Post), new JsonSerializerSettings + return JsonConvert.DeserializeObject(GetWingmanResponse("CheckLogQueuedOrDB", GetCheckLogQueuedOrDBURL(dpsReportLink), traceHandler, null, HttpMethod.Post)!, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, ContractResolver = DefaultJsonContractResolver, @@ -118,7 +118,7 @@ public static WingmanCheckLogQueuedOrDBObject GetCheckLogQueuedOrDB(string dpsRe } } - public static WingmanCheckLogQueuedObject GetCheckLogQueued(string dpsReportLink, TraceHandler traceHandler) + public static WingmanCheckLogQueuedObject? GetCheckLogQueued(string dpsReportLink, TraceHandler traceHandler) { if (!IsDPSReportLinkValid(dpsReportLink, traceHandler)) { @@ -126,7 +126,7 @@ public static WingmanCheckLogQueuedObject GetCheckLogQueued(string dpsReportLink } try { - return JsonConvert.DeserializeObject(GetWingmanResponse("CheckLogQueued", GetCheckLogQueuedOrDBURL(dpsReportLink), traceHandler, null, HttpMethod.Post), new JsonSerializerSettings + return JsonConvert.DeserializeObject(GetWingmanResponse("CheckLogQueued", GetCheckLogQueuedOrDBURL(dpsReportLink), traceHandler, null, HttpMethod.Post)!, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, ContractResolver = DefaultJsonContractResolver, @@ -140,7 +140,7 @@ public static WingmanCheckLogQueuedObject GetCheckLogQueued(string dpsReportLink } } - public static WingmanImportLogQueuedObject ImportLogQueued(string dpsReportLink, TraceHandler traceHandler) + public static WingmanImportLogQueuedObject? ImportLogQueued(string dpsReportLink, TraceHandler traceHandler) { if (!IsDPSReportLinkValid(dpsReportLink, traceHandler)) { @@ -148,7 +148,7 @@ public static WingmanImportLogQueuedObject ImportLogQueued(string dpsReportLink, } try { - return JsonConvert.DeserializeObject(GetWingmanResponse("ImportLogQueued", GetCheckLogQueuedOrDBURL(dpsReportLink), traceHandler, null, HttpMethod.Post), new JsonSerializerSettings + return JsonConvert.DeserializeObject(GetWingmanResponse("ImportLogQueued", GetCheckLogQueuedOrDBURL(dpsReportLink), traceHandler, null, HttpMethod.Post)!, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, ContractResolver = DefaultJsonContractResolver, @@ -165,7 +165,7 @@ public static WingmanImportLogQueuedObject ImportLogQueued(string dpsReportLink, public static bool UploadToWingmanUsingImportLogQueued(string dpsReportLink, TraceHandler traceHandler) { // Check if the URL is already present on Wingman - WingmanCheckLogQueuedOrDBObject wingmanCheck = GetCheckLogQueuedOrDB(dpsReportLink, traceHandler); + WingmanCheckLogQueuedOrDBObject? wingmanCheck = GetCheckLogQueuedOrDB(dpsReportLink, traceHandler); if (wingmanCheck != null) { if (wingmanCheck.InDB || wingmanCheck.InQueue) @@ -175,7 +175,7 @@ public static bool UploadToWingmanUsingImportLogQueued(string dpsReportLink, Tra } else { - WingmanImportLogQueuedObject wingmanUpload = ImportLogQueued(dpsReportLink, traceHandler); + WingmanImportLogQueuedObject? wingmanUpload = ImportLogQueued(dpsReportLink, traceHandler); if (wingmanUpload != null) { if (wingmanUpload.Success != 1) @@ -205,7 +205,7 @@ public static bool CheckUploadPossible(FileInfo fi, string account, long trigger { "file", fi.Name } , { "triggerID", triggerID.ToString() } }; - Func contentCreator = () => + HttpContent contentCreator() { var multiPartContent = new MultipartFormDataContent(); foreach (KeyValuePair pair in data) @@ -214,7 +214,7 @@ public static bool CheckUploadPossible(FileInfo fi, string account, long trigger multiPartContent.Add(content, pair.Key); } return multiPartContent; - }; + } return GetWingmanResponse("CheckUploadPossible", CheckUploadURL, traceHandler, null, HttpMethod.Post, contentCreator) == "True"; } public static bool UploadProcessed(FileInfo fi, string account, byte[] jsonFile, byte[] htmlFile, string suffix, TraceHandler traceHandler, Version parserVersion) @@ -247,12 +247,12 @@ public static bool UploadProcessed(FileInfo fi, string account, byte[] jsonFile, return multiPartContent; }; - string response = GetWingmanResponse("UploadProcessed", UploadProcessedURL, traceHandler, null, HttpMethod.Post, contentCreator); + string? response = GetWingmanResponse("UploadProcessed", UploadProcessedURL, traceHandler, null, HttpMethod.Post, contentCreator); return response != null && response != "False"; } // - private static string _GetWingmanResponse(string requestName, string url, TraceHandler traceHandler, HttpMethod method, Func content = null) + private static string? _GetWingmanResponse(string requestName, string url, TraceHandler traceHandler, HttpMethod method, Func? content = null) { const int tentatives = 3; for (int i = 0; i < tentatives; i++) @@ -306,7 +306,7 @@ private static string _GetWingmanResponse(string requestName, string url, TraceH } - private static string GetWingmanResponse(string requestName, string url, TraceHandler traceHandler, Version parserVersion, HttpMethod method, Func content = null) + private static string? GetWingmanResponse(string requestName, string url, TraceHandler traceHandler, Version? parserVersion, HttpMethod method, Func? content = null) { if (!CanBeUsed(parserVersion, traceHandler)) {