public Entities.ActionResponses.PlayCard Execute(List<Int32> cardIDs, Int32 gameID, Int32 userId, Boolean autoPlayed = false)
{
Entities.ActionResponses.PlayCard response = _playCard.Execute(cardIDs, gameID, userId, autoPlayed);
if (response.ResponseCode == Entities.ActionResponses.Enums.PlayCardResponseCode.Success)
{
Entities.Filters.Game.Select filter = new Entities.Filters.Game.Select();
filter.DataToSelect = Entities.Enums.Game.Select.GamePlayerCards;
filter.GameID = gameID;
Entities.Game game = _selectGame.Execute(filter);
game.Rounds.Add(response.CurrentRound);
if(response.CurrentRound.AllPlayersAnswered() && game.SecondsToPlay > 0)
{
var cachedJobId = MemoryCache.Default.Get(game.RoundTimerKey);
BackgroundJob.Delete(cachedJobId as String);
}
_sendMessage.CardPlayed(game, true);
_updateGame.Execute(game.GameID, DateTime.UtcNow, null);
}
return response;
}