Skip to content

Commit

Permalink
Fixes .net 8 upgrade (#345)
Browse files Browse the repository at this point in the history
* Temporary commit before rebasing

* Completed .net 8 migration
  • Loading branch information
kevinjroyston committed Jun 16, 2024
1 parent e8ef1fc commit b73cbc7
Show file tree
Hide file tree
Showing 35 changed files with 91 additions and 5,697 deletions.
6 changes: 3 additions & 3 deletions src/Backend.sln
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@


Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29503.13
Expand All @@ -7,9 +7,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Backend", "Backend\Backend.
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BackendTests", "BackendTests\BackendTests.csproj", "{39FD3A4B-FF68-44D0-8B4B-BA2DC7BC26DF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common.DataModels", "Common\DataModels\Common.DataModels.csproj", "{6F6C50AD-BB9D-4438-AECE-CA194A5D99CA}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.DataModels", "Common\DataModels\Common.DataModels.csproj", "{6F6C50AD-BB9D-4438-AECE-CA194A5D99CA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common.Code", "Common\Code\Common.Code.csproj", "{AF06B997-3AC8-4811-9771-EBAD0F4067DC}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.Code", "Common\Code\Common.Code.csproj", "{AF06B997-3AC8-4811-9771-EBAD0F4067DC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand Down
13 changes: 6 additions & 7 deletions src/Backend/Backend.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,14 @@
<ApplicationInsightsResourceId>/subscriptions/7704f82a-fc3d-4692-a493-61ac7588aab8/resourcegroups/Default-ApplicationInsights-EastUS/providers/microsoft.insights/components/RoystonGame</ApplicationInsightsResourceId>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="FluentAssertions" Version="5.10.3" />
<PackageReference Include="JonSkeet.MiscUtil" Version="0.2.0" />
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.14.0" />
<PackageReference Include="Microsoft.Identity.Web" Version="0.2.1-preview" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.0" />
<PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="8.0.0" />
<PackageReference Include="FluentAssertions" Version="6.12.0" />
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.22.0" />
<PackageReference Include="Microsoft.Identity.Web" Version="2.19.1" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.6" />
<PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="8.0.6" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="8.0.0" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="8.0.0" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="8.0.2" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
</ItemGroup>
<ItemGroup>
Expand Down
15 changes: 7 additions & 8 deletions src/Backend/Games/BriansGames/BattleReady/BattleReadyGameMode.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
using Backend.APIs.DataModels.UnityObjects;
using static Backend.Games.BriansGames.BattleReady.DataModels.Prompt;
using Common.Code.Extensions;
using MiscUtil;

namespace Backend.Games.BriansGames.BattleReady
{
Expand Down Expand Up @@ -76,10 +75,10 @@ public class BattleReadyGameMode : IGameMode
TimeSpan creationTimer = BattleReadyConstants.PerCreationTimer[duration];
TimeSpan votingTimer = BattleReadyConstants.VotingTimer[duration];

estimate += setupDrawingTimer.MultipliedBy(expectedDrawingsPerUser);
estimate += setupPromptTimer.MultipliedBy(expectedPromptsPerUser);
estimate += creationTimer.MultipliedBy(numPromptsPerUserPerRound * numRounds);
estimate += votingTimer.MultipliedBy(numPromptsPerRound * numRounds);
estimate += setupDrawingTimer.Multiply(expectedDrawingsPerUser);
estimate += setupPromptTimer.Multiply(expectedPromptsPerUser);
estimate += creationTimer.Multiply(numPromptsPerUserPerRound * numRounds);
estimate += votingTimer.Multiply(numPromptsPerRound * numRounds);
estimates[duration] = estimate;
}

Expand Down Expand Up @@ -181,9 +180,9 @@ GameState CreateContestantCreationGamestate()
prompt.UsersToUserHands.TryAdd(user, new Prompt.UserHand
{
// Users who submit more drawings technically have higher chances of being seen. (Used to use Select_DynamicWeightedRandom which kept author counts fair, but could skew some drawings to being seen more as a result)
HeadChoices = headDrawings.OrderBy((val) => StaticRandom.Next()).ToList().Take(BattleReadyConstants.NumDrawingsInHand).ToList(),
BodyChoices = bodyDrawings.OrderBy((val) => StaticRandom.Next()).ToList().Take(BattleReadyConstants.NumDrawingsInHand).ToList(),
LegChoices = legsDrawings.OrderBy((val) => StaticRandom.Next()).ToList().Take(BattleReadyConstants.NumDrawingsInHand).ToList(),
HeadChoices = headDrawings.OrderBy((val) => Random.Shared.Next()).ToList().Take(BattleReadyConstants.NumDrawingsInHand).ToList(),
BodyChoices = bodyDrawings.OrderBy((val) => Random.Shared.Next()).ToList().Take(BattleReadyConstants.NumDrawingsInHand).ToList(),
LegChoices = legsDrawings.OrderBy((val) => Random.Shared.Next()).ToList().Take(BattleReadyConstants.NumDrawingsInHand).ToList(),
Owner = user
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public ContestantCreation_GS(Lobby lobby, RoundTracker roundTracker, TimeSpan? c
{
this.RoundTracker = roundTracker;
this.ExpectedTimePerPrompt = creationDuration;
TimeSpan? multipliedCreationDuration = creationDuration.MultipliedBy(roundTracker.UsersToAssignedPrompts.Values.Max(list=>list?.Count??1));
TimeSpan? multipliedCreationDuration = creationDuration?.Multiply(roundTracker.UsersToAssignedPrompts.Values.Max(list=>list?.Count??1));

MultiStateChain contestantsMultiStateChain = new MultiStateChain(MakePeopleUserStateChain, stateDuration: multipliedCreationDuration);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
using Common.DataModels.Requests;
using Common.DataModels.Responses;
using Backend.APIs.DataModels.UnityObjects;
using Common.Code.WordLists;
using System;
using System.Collections.Generic;
using static System.FormattableString;
Expand Down Expand Up @@ -61,7 +60,7 @@ public Setup_GS(Lobby lobby, List<Prompt> promptsToPopulate, TimeSpan? writingTi
{
return Prompts.DisplayWaitingText("Waiting for others to draw.")(user);
});
var getDrawings = new MultiStateChain(GetDrawingsUserStateChain, exit: waitForDrawings, stateDuration: PerDrawingTimeDuration.MultipliedBy(this.NumDrawingsPerUser));
var getDrawings = new MultiStateChain(GetDrawingsUserStateChain, exit: waitForDrawings, stateDuration: PerDrawingTimeDuration?.Multiply(this.NumDrawingsPerUser));
getDrawings.Transition(this.Exit);
getDrawings.AddEntranceListener(() =>
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,8 @@ public class ImposterDrawingGameMode : IGameMode
TimeSpan votingTimer = ImposterDrawingConstants.VotingTimer[duration];

estimate += writingTimer;
estimate += drawingTimer.MultipliedBy(numDrawingsPerUser);
estimate += votingTimer.MultipliedBy(numRounds);
estimate += drawingTimer.Multiply(numDrawingsPerUser);
estimate += votingTimer.Multiply(numRounds);
estimates[duration] = estimate;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
using Common.DataModels.Requests;
using Common.DataModels.Responses;
using Backend.APIs.DataModels.UnityObjects;
using Common.Code.WordLists;
using System;
using System.Collections.Generic;
using System.Diagnostics;
Expand Down Expand Up @@ -45,7 +44,6 @@ private UserState GetChallengesUserState()
{
new SubPrompt
{
// Prompt = Invariant($"The drawing prompt. Suggestions: '{string.Join("', '",RandomLineFromFile.GetRandomLines(FileNames.Nouns, 5))}'"),
Prompt = "Drawing Title (describe the drawing)",
ShortAnswer = true,
},
Expand Down Expand Up @@ -241,7 +239,7 @@ public Setup_GS(Lobby lobby, ConcurrentDictionary<ChallengeTracker, object> chal
getChallenges.AddExitListener(() => this.AssignPrompts());
getChallenges.Transition(() =>
{
var getDrawings = new MultiStateChain(GetDrawingsUserStateChain, exit: new WaitForUsers_StateExit(this.Lobby), stateDuration: perDrawingTimer.MultipliedBy(numDrawingsPerPlayer));
var getDrawings = new MultiStateChain(GetDrawingsUserStateChain, exit: new WaitForUsers_StateExit(this.Lobby), stateDuration: perDrawingTimer?.Multiply(numDrawingsPerPlayer));
getDrawings.Transition(this.Exit);
getDrawings.AddEntranceListener(() =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,11 +101,11 @@ private static List<string> GetTutorialHiddenClasses(List<ConfigureLobbyRequest

TimeSpan estimate = TimeSpan.Zero;
TimeSpan setupTimer = TwoToneDrawingConstants.SetupTimer[duration];
TimeSpan drawingTimer = TwoToneDrawingConstants.PerDrawingTimer[duration].MultipliedBy(numDrawingsPerPlayer);
TimeSpan drawingTimer = TwoToneDrawingConstants.PerDrawingTimer[duration].Multiply(numDrawingsPerPlayer);
TimeSpan votingTimer = TwoToneDrawingConstants.VotingTimer[duration];

estimate += votingTimer.MultipliedBy(numRounds);
estimate += setupTimer.MultipliedBy(useSingleColor ? 1 : 1.5f);
estimate += votingTimer.Multiply(numRounds);
estimate += setupTimer.Multiply(useSingleColor ? 1 : 1.5f);
estimate += drawingTimer;

estimates[duration] = estimate;
Expand Down Expand Up @@ -140,7 +140,7 @@ public TwoToneDrawingGameMode(Lobby lobby, List<ConfigureLobbyRequest.GameModeOp
TimeSpan? votingTimer = null;
if (standardOptions.TimerEnabled)
{
setupTimer = TwoToneDrawingConstants.SetupTimer[duration].MultipliedBy(UseSingleColor ? 1 : 1.5f);
setupTimer = TwoToneDrawingConstants.SetupTimer[duration].Multiply(UseSingleColor ? 1 : 1.5f);
perDrawingTimer = TwoToneDrawingConstants.PerDrawingTimer[duration];
votingTimer = TwoToneDrawingConstants.VotingTimer[duration];
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,15 +60,15 @@ public abstract class FurnishTrackerSetupGameState<T> : GameState where T : clas
{
prompt.PromptHeader.CurrentProgress = counter + 1;
prompt.PromptHeader.MaxProgress = TrackersToFurnish[user].Count;
prompt.PromptHeader.ExpectedTimePerPrompt = this.SetupDuration.MultipliedBy(1.0f / TrackersToFurnish[user].Count);
prompt.PromptHeader.ExpectedTimePerPrompt = this.SetupDuration?.Multiply(1.0f / TrackersToFurnish[user].Count);
}
else
{
prompt.PromptHeader = new PromptHeaderMetadata
{
CurrentProgress = counter + 1,
MaxProgress = TrackersToFurnish[user].Count,
ExpectedTimePerPrompt = this.SetupDuration.MultipliedBy(1.0f / TrackersToFurnish[user].Count)
ExpectedTimePerPrompt = this.SetupDuration?.Multiply(1.0f / TrackersToFurnish[user].Count)
};
}
return prompt;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ public override (bool, string) CountingFormSubmitHandler(User user, UserFormSubm

public override UserTimeoutAction CountingUserTimeoutHandler(User user, UserFormSubmission input, ChallengeTracker current)
{
string artName = "unnamed";
string artName = "N/A";
if (!string.IsNullOrWhiteSpace(input?.SubForms?[1]?.ShortAnswer)
&& input.SubForms[1].ShortAnswer.ToLower() != "original")
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public class SetupInitialDrawing_Gs : FurnishTrackerSetupGameState<ChallengeTrac
challengeTrackersToFurnish: challengeTrackersToFurnish,
unityTitle: "Draw the prompt before the time runs out",
unityInstructions: "",
setupDuration: perSetupDuration?.MultipliedBy(challengeTrackersToFurnish.Max(kvp=>kvp.Value.Count)))
setupDuration: perSetupDuration?.Multiply(challengeTrackersToFurnish.Max(kvp=>kvp.Value.Count)))
{
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public override UserPrompt CountingPromptGenerator(User user, int counter)
{
CurrentProgress = counter + 1,
MaxProgress = NumExpectedPerUser,
ExpectedTimePerPrompt = this.SetupDuration.MultipliedBy(1.0f / NumExpectedPerUser)
ExpectedTimePerPrompt = this.SetupDuration?.Multiply(1.0f / NumExpectedPerUser)
},
Description = "In the box below, come up with a prompt for other players to draw",
SubPrompts = new SubPrompt[]
Expand Down
10 changes: 5 additions & 5 deletions src/Backend/Games/KevinsGames/IMadeThis/IMadeThisGameMode.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,9 @@ public class IMadeThisGameMode : IGameMode
TimeSpan drawingTimer = IMadeThisConstants.DrawingTimer[duration];
TimeSpan votingTimer = IMadeThisConstants.VotingTimer[duration];

estimate += writingTimer.MultipliedBy(NumPromptsPerUser);
estimate += drawingTimer.MultipliedBy(numDrawingsPerUser);
estimate += votingTimer.MultipliedBy(numRounds);
estimate += writingTimer.Multiply(NumPromptsPerUser);
estimate += drawingTimer.Multiply(numDrawingsPerUser);
estimate += votingTimer.Multiply(numRounds);
estimates[duration] = estimate;
}

Expand All @@ -87,7 +87,7 @@ public IMadeThisGameMode(Lobby lobby, List<ConfigureLobbyRequest.GameModeOptionR
GameDuration duration = standardOptions.GameDuration;
if (standardOptions.TimerEnabled)
{
writingTimer = IMadeThisConstants.WritingTimer[duration].MultipliedBy(NumPromptsPerUser);
writingTimer = IMadeThisConstants.WritingTimer[duration].Multiply(NumPromptsPerUser);
drawingTimer = IMadeThisConstants.DrawingTimer[duration];
votingTimer = IMadeThisConstants.VotingTimer[duration];
}
Expand Down Expand Up @@ -145,7 +145,7 @@ State CreateSetupSecondaryDrawings()
var state = new SetupImproveInitialDrawing_Gs(
lobby,
AssignSecondaryDrawings(challengeTrackers, playersPerPrompt:playersPerPrompt, numDrawingsPerPlayer: numDrawingsPerUser, secondaryPrompts: prompts),
drawingTimer.MultipliedBy(numDrawingsPerUser));
drawingTimer?.Multiply(numDrawingsPerUser));

state.Transition(CreateGamePlayLoop);
return state;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
using Common.DataModels.Requests;
using Common.DataModels.Responses;
using Backend.APIs.DataModels.UnityObjects;
using Common.Code.WordLists;
using System;
using System.Collections.Generic;
using static System.FormattableString;
Expand All @@ -24,7 +23,6 @@
using System.Collections.Concurrent;
using System.Collections.Immutable;
using Common.DataModels.Responses.Gameplay;
using MiscUtil;
using Backend.Games.Common;

namespace Backend.Games.KevinsGames.LateToArtClass.GameStates
Expand Down Expand Up @@ -185,7 +183,7 @@ private List<State> GetDrawingsUserStateChain(User user)
var dummyWaitingState = new PromptlessUserState(waitingForCopyStateExit);
dummyWaitingState.AddExitListener(() => {
// Select a random user to copy from, just before entering the actual state
artClass.CopiedFrom = artClass.UsersToDrawings.Where(kvp => kvp.Value?.Drawing!=null).OrderBy(_ => StaticRandom.Next()).FirstOrDefault().Key;
artClass.CopiedFrom = artClass.UsersToDrawings.Where(kvp => kvp.Value?.Drawing!=null).OrderBy(_ => Random.Shared.Next()).FirstOrDefault().Key;
});

stateChain.Add(dummyWaitingState);
Expand Down Expand Up @@ -266,7 +264,7 @@ public Setup_GS(Lobby lobby, List<ArtClass> promptsToPopulate, TimeSpan? writing
{
return Prompts.DisplayWaitingText("Waiting for others to draw.")(user);
});
var getDrawings = new MultiStateChain(GetDrawingsUserStateChain, exit: waitForDrawings, stateDuration: PerDrawingTimeDuration.MultipliedBy(NumDrawingsPerUser));
var getDrawings = new MultiStateChain(GetDrawingsUserStateChain, exit: waitForDrawings, stateDuration: PerDrawingTimeDuration?.Multiply(NumDrawingsPerUser));
getDrawings.Transition(this.Exit);
getDrawings.AddEntranceListener(() =>
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,8 @@ public class LateToArtClassGameMode : IGameMode
TimeSpan votingTimer = LateToArtClassConstants.VotingTimer[duration];

estimate += writingTimer;
estimate += drawingTimer.MultipliedBy(numDrawingsPerUser);
estimate += votingTimer.MultipliedBy(numRounds);
estimate += drawingTimer.Multiply(numDrawingsPerUser);
estimate += votingTimer.Multiply(numRounds);
estimates[duration] = estimate;
}

Expand Down
2 changes: 1 addition & 1 deletion src/Backend/Games/KevinsGames/Mimic/GameStates/Setup_GS.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ private List<State> GetDrawingsUserStateChain(int numDrawingsPerUser, Concurrent
{
CurrentProgress = drawingNumber,
MaxProgress = numDrawingsPerUser,
ExpectedTimePerPrompt = this.DrawingTimeDuration.MultipliedBy(1.0f / numDrawingsPerUser)
ExpectedTimePerPrompt = this.DrawingTimeDuration?.Multiply(1.0f / numDrawingsPerUser)
},
Description = "Draw anything you want",
SubPrompts = new SubPrompt[]
Expand Down
Loading

0 comments on commit b73cbc7

Please sign in to comment.