Esempio n. 1
0
        public ManualStepResult PerformManualStep(VerificationManualStepData verificationData)
        {
            if (!_isInitialized)
            {
                throw new InvalidOperationException("Game is not started");
            }

            var verificationResult = VerifyManualStep(verificationData);
            IEnumerable <CounterBase> modifiedCounters = null;

            if (!verificationResult.IsVerificationRequired)
            {
                modifiedCounters = PerformManualStepInternal();
                var noVerificationResult = verificationResult as ManualStepNoVerficationRequiredResult;
                var counters             = modifiedCounters as CounterBase[] ?? modifiedCounters.ToArray();
                if (noVerificationResult != null)
                {
                    var genericCounters = GameCash.Counters.OfType <GenericCounter>();
                    noVerificationResult.ModifiedGameCash = new GameCash
                    {
                        Counters    = genericCounters.Cast <CounterBase>().ToArray(),
                        CashOnHand  = GameCash.CashOnHand,
                        RootCounter = GameCash.RootCounter,
                        TotalEarned = GameCash.TotalEarned
                    };
                    verificationResult = noVerificationResult;
                }
                PostPerformManualStep(counters);
            }
            return(verificationResult);
        }
Esempio n. 2
0
        private ManualStepResult VerifyManualStep(VerificationManualStepData verificationData)
        {
            if (_manualStepVerificationRequiredResult != null)
            {
                if (verificationData == null)
                {
                    return(_manualStepVerificationRequiredResult);
                }
                var verficationRequiredResult =
                    _manualStepVerificationRequiredResult as ManualStepVerificationRequiredResult;

                var result = verficationRequiredResult != null &&
                             verficationRequiredResult.FirstNumber + verficationRequiredResult.SecondNumber ==
                             verificationData.ResultNumber
                    ? (ManualStepResult) new ManualStepVerifiedResult(true)
                    : InitializeVerificationSteps();


                if (!result.IsVerificationRequired)
                {
                    _manualStepVerificationRequiredResult = null;
                }
                else
                {
                    _manualStepVerificationRequiredResult = result;
                }
                return(result);
            }

            if (_currentVerificationSteps < _nextVerificationSteps)
            {
                _currentVerificationSteps++;
            }
            else
            {
                _manualStepVerificationRequiredResult = InitializeVerificationSteps();
                return(_manualStepVerificationRequiredResult);
            }

            return(new ManualStepNoVerficationRequiredResult());
        }