From 896b8c8dd118c37d0173f480c2cd73adebd424c7 Mon Sep 17 00:00:00 2001 From: littlefoot Date: Sun, 7 Nov 2021 20:50:34 -0500 Subject: [PATCH] Update rank service to handle dealing with rank entries that dont make it on the list and adding start of unit tests --- TOOHUCardAPI.sln | 6 +++++ .../DTO/RankData/RankDataResetResponse.cs | 7 ----- .../DTO/RankData/RankDataUploadRequest.cs | 7 ----- .../DTO/RankData/RankDataUploadResponse.cs | 7 ----- TOOHUCardAPI/Data/Services/RankService.cs | 26 ++++++++++++++++++- TOOHUCardAPITests/TOOHUCardAPITests.csproj | 15 +++++++++++ TOOHUCardAPITests/UnitTest1.cs | 18 +++++++++++++ 7 files changed, 64 insertions(+), 22 deletions(-) delete mode 100644 TOOHUCardAPI/DTO/RankData/RankDataResetResponse.cs delete mode 100644 TOOHUCardAPI/DTO/RankData/RankDataUploadRequest.cs delete mode 100644 TOOHUCardAPI/DTO/RankData/RankDataUploadResponse.cs create mode 100644 TOOHUCardAPITests/TOOHUCardAPITests.csproj create mode 100644 TOOHUCardAPITests/UnitTest1.cs diff --git a/TOOHUCardAPI.sln b/TOOHUCardAPI.sln index 4a4445b..62de78a 100644 --- a/TOOHUCardAPI.sln +++ b/TOOHUCardAPI.sln @@ -2,6 +2,8 @@ Microsoft Visual Studio Solution File, Format Version 12.00 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TOOHUCardAPI", "TOOHUCardAPI\TOOHUCardAPI.csproj", "{952B5298-5B24-49AC-89DE-0A46F6B1F071}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TOOHUCardAPITests", "TOOHUCardAPITests\TOOHUCardAPITests.csproj", "{ABB94AE7-209A-4588-A8FB-10AB9782B8DB}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -12,5 +14,9 @@ Global {952B5298-5B24-49AC-89DE-0A46F6B1F071}.Debug|Any CPU.Build.0 = Debug|Any CPU {952B5298-5B24-49AC-89DE-0A46F6B1F071}.Release|Any CPU.ActiveCfg = Release|Any CPU {952B5298-5B24-49AC-89DE-0A46F6B1F071}.Release|Any CPU.Build.0 = Release|Any CPU + {ABB94AE7-209A-4588-A8FB-10AB9782B8DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ABB94AE7-209A-4588-A8FB-10AB9782B8DB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ABB94AE7-209A-4588-A8FB-10AB9782B8DB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ABB94AE7-209A-4588-A8FB-10AB9782B8DB}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/TOOHUCardAPI/DTO/RankData/RankDataResetResponse.cs b/TOOHUCardAPI/DTO/RankData/RankDataResetResponse.cs deleted file mode 100644 index 882731e..0000000 --- a/TOOHUCardAPI/DTO/RankData/RankDataResetResponse.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace TOOHUCardAPI.DTO.RankData -{ - public class RankDataResetResponse : OkResponse - { - - } -} \ No newline at end of file diff --git a/TOOHUCardAPI/DTO/RankData/RankDataUploadRequest.cs b/TOOHUCardAPI/DTO/RankData/RankDataUploadRequest.cs deleted file mode 100644 index cea821b..0000000 --- a/TOOHUCardAPI/DTO/RankData/RankDataUploadRequest.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace TOOHUCardAPI.DTO.RankData -{ - public class RankDataUploadRequest : AbstractPlayerTargetedRequest - { - - } -} \ No newline at end of file diff --git a/TOOHUCardAPI/DTO/RankData/RankDataUploadResponse.cs b/TOOHUCardAPI/DTO/RankData/RankDataUploadResponse.cs deleted file mode 100644 index cfc5a63..0000000 --- a/TOOHUCardAPI/DTO/RankData/RankDataUploadResponse.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace TOOHUCardAPI.DTO.RankData -{ - public class RankDataUploadResponse : OkResponse - { - - } -} \ No newline at end of file diff --git a/TOOHUCardAPI/Data/Services/RankService.cs b/TOOHUCardAPI/Data/Services/RankService.cs index ae83ac8..1fa1027 100644 --- a/TOOHUCardAPI/Data/Services/RankService.cs +++ b/TOOHUCardAPI/Data/Services/RankService.cs @@ -31,6 +31,10 @@ namespace TOOHUCardAPI.Data.Services { int bonus = AppSettings.DefaultRankBonus; int index = allEntries.FindIndex(i => i.Id == entry.Id)+1; + if (index <= 0) + { + index = allEntries.Count + 1; + } switch (index) { case <= 4: @@ -77,7 +81,27 @@ namespace TOOHUCardAPI.Data.Services TowersUsed = towersUsed, UpdateTime = DateTime.Now }; - toUpload = await _rankRepository.InsertRankEntry(toUpload); + var previousEntry = await _rankRepository.GetRankEntry(toUpload.User.SteamId, toUpload.RankType); + bool shouldPushNew = true; + if (previousEntry != null) + { + if (previousEntry.Wave < toUpload.Wave) + { + await ResetRank(toUpload.User.SteamId, toUpload.RankType); + } + else if (previousEntry.Wave == toUpload.Wave && previousEntry.Damage < toUpload.Damage) + { + await ResetRank(toUpload.User.SteamId, toUpload.RankType); + } + else + { + shouldPushNew = false; + } + } + if (shouldPushNew) + { + toUpload = await _rankRepository.InsertRankEntry(toUpload); + } List allEntries = (await _rankRepository.GetRankEntries(toUpload.RankType)).ToList(); await _userService.UpdateUserAccountDetails(entry.SteamId, entry.UserId, entry.Username); await _userService.UpdateUserMaxWave(entry.SteamId, entry.Wave, toUpload.RankType); diff --git a/TOOHUCardAPITests/TOOHUCardAPITests.csproj b/TOOHUCardAPITests/TOOHUCardAPITests.csproj new file mode 100644 index 0000000..e0c96fa --- /dev/null +++ b/TOOHUCardAPITests/TOOHUCardAPITests.csproj @@ -0,0 +1,15 @@ + + + + net5.0 + + false + + + + + + + + + diff --git a/TOOHUCardAPITests/UnitTest1.cs b/TOOHUCardAPITests/UnitTest1.cs new file mode 100644 index 0000000..4f34efb --- /dev/null +++ b/TOOHUCardAPITests/UnitTest1.cs @@ -0,0 +1,18 @@ +using NUnit.Framework; + +namespace TOOHUCardAPITests +{ + public class Tests + { + [SetUp] + public void Setup() + { + } + + [Test] + public void Test1() + { + Assert.Pass(); + } + } +} \ No newline at end of file