Skip to content

Instantly share code, notes, and snippets.

@n1ckdm
Created July 11, 2022 07:58
Show Gist options
  • Save n1ckdm/ad81e8a580da393a58e40bedcf694ff4 to your computer and use it in GitHub Desktop.
Save n1ckdm/ad81e8a580da393a58e40bedcf694ff4 to your computer and use it in GitHub Desktop.
public List<IEvent> Handle(MakeMoveCommand cmd)
{
if (EState.Created == State)
{
return new List<IEvent>
{
new MoveDecidedEvent(cmd.GameId, cmd.PlayerEmail, cmd.Move)
};
}
else if (EState.Waiting == State)
{
if (Player == cmd.PlayerEmail) throw new ArgumentException($"Player already in game: {cmd.PlayerEmail}");
return new List<IEvent>
{
new MoveDecidedEvent(cmd.GameId, cmd.PlayerEmail, cmd.Move),
MakeEndGameEvent(cmd.GameId, cmd.PlayerEmail, cmd.Move)
};
}
else
{
throw new InvalidOperationException($"Invalid game state: {State}");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment