private async Task PlayRuleAsync(RuleCard thisCard)
        {
            if (thisCard.Deck == EnumRuleText.ReverseOrder)
            {
                if (_gameContainer.PlayerList.Count() == 2)
                {
                    _gameContainer.SaveRoot !.AnotherTurn = true;
                    await _gameContainer.AnimatePlayAsync !(thisCard);
                    await _analyzeProcesses.AnalyzeQueAsync();

                    return;
                }
            }
            if (thisCard.Category != EnumRuleCategory.Basic && thisCard.Category != EnumRuleCategory.None)
            {
                var thisCat = thisCard.Category;
                _gameContainer.SaveRoot !.RuleList.RemoveAllOnly(items => items.Category == thisCat);
            }
            _gameContainer.SaveRoot !.RuleList.Add(thisCard);
            _gameContainer.RefreshRules();
            if (_gameContainer !.QuePlayList.Count == 0)
            {
                _analyzeProcesses.AnalyzeRules();
                if (_gameContainer.LeftToDraw > 0)
                {
                    _gameContainer.SaveRoot.DoAnalyze = true;
                    await _gameContainer.DrawAsync !();
                    return;
                }
            }
            await _analyzeProcesses.AnalyzeQueAsync();
        }