예제 #1
0
        decimal ISansTopuClient.GetPrize(LotoResult result, SansTopuGuess guess)
        {
            if (result == null)
            {
                throw new ArgumentNullException(nameof(result));
            }

            if (guess == null)
            {
                throw new ArgumentNullException(nameof(guess));
            }


            var numbers = Array.ConvertAll(result.Data.Rakamlar.Split('#'), int.Parse).ToList();

            var winningNumbers = numbers.GetRange(0, 5);
            var plusOne        = numbers[5];

            int luckyNumberCount = 0;

            foreach (var number in guess.Numbers)
            {
                if (winningNumbers.Contains(number))
                {
                    luckyNumberCount++;
                }
            }

            bool gotPlusOne = guess.PlusOne == plusOne;

            if (gotPlusOne)
            {
                return(result.Data.BilenKisiler.First(bk => bk.Tur == $"${luckyNumberCount}_1_BILEN").KisiBasinaDusenIkramiye);
            }
            else
            {
                if (luckyNumberCount < 3)
                {
                    return(0m);
                }

                return(result.Data.BilenKisiler.First(bk => bk.Tur == $"${luckyNumberCount}_BILEN").KisiBasinaDusenIkramiye);
            }
        }
예제 #2
0
        public static decimal GetPrize(this ISansTopuClient client, DateTime drawDate, SansTopuGuess guess)
        {
            var result = client.GetResult(drawDate);

            return(client.GetPrize(result, guess));
        }