Пример #1
0
        public PartialLotteryResult GetPartialLotteryResult(PartialLotteryResult partialResult)
        {
            int populatedBalls = 0;

            var valuesToExclude = new List <int>();

            if (partialResult.Ball1.HasValue)
            {
                populatedBalls++; valuesToExclude.Add(partialResult.Ball1.Value);
            }
            if (partialResult.Ball2.HasValue)
            {
                populatedBalls++; valuesToExclude.Add(partialResult.Ball2.Value);
            }
            if (partialResult.Ball3.HasValue)
            {
                populatedBalls++; valuesToExclude.Add(partialResult.Ball3.Value);
            }
            if (partialResult.Ball4.HasValue)
            {
                populatedBalls++; valuesToExclude.Add(partialResult.Ball4.Value);
            }
            if (partialResult.Ball5.HasValue)
            {
                populatedBalls++; valuesToExclude.Add(partialResult.Ball5.Value);
            }
            if (partialResult.Ball6.HasValue)
            {
                populatedBalls++; valuesToExclude.Add(partialResult.Ball6.Value);
            }

            if (populatedBalls > 5)
            {
                partialResult.IsFull = true;
                return(partialResult);
            }

            int nextBall = _numberGenerator.GenerateNextNumber(1, 49, valuesToExclude);

            switch (populatedBalls)
            {
            case 0: partialResult.Ball1 = nextBall; return(partialResult);

            case 1: partialResult.Ball2 = nextBall; return(partialResult);

            case 2: partialResult.Ball3 = nextBall; return(partialResult);

            case 3: partialResult.Ball4 = nextBall; return(partialResult);

            case 4: partialResult.Ball5 = nextBall; return(partialResult);

            case 5: partialResult.Ball6 = nextBall;
                partialResult.IsFull    = true; return(partialResult);

            default: return(partialResult);
            }
        }