Exemplo n.º 1
0
 public void SettleDraw(DateTime drawDate, int[] numbers) {
     var draw = draws[drawDate];
     var payoutPool = new PayoutPool(draw.TotalPoolSize * operatorDeductionFactor);
     var ticketCategories = draw.SplitTicketsIntoCategories(numbers);
     for (var matches = 0; matches <= numbers.Length; matches++) {
         var prizePool = payoutPool.PrizePool(matches);
         var totalInCategory = ticketCategories[matches].Sum(ticket => ticket.Amount);
         foreach (var ticket in ticketCategories[matches]) {
             var winnings = ticket.Amount*prizePool/totalInCategory;
             players[ticket.PlayerId].AdjustBalance(winnings);
             ticket.Settle(winnings);
         }
     }
 }
Exemplo n.º 2
0
        public void SettleDraw(DateTime drawDate, int[] numbers)
        {
            var draw             = draws[drawDate];
            var payoutPool       = new PayoutPool(draw.TotalPoolSize * operatorDeductionFactor);
            var ticketCategories = draw.SplitTicketsIntoCategories(numbers);

            for (var matches = 0; matches <= numbers.Length; matches++)
            {
                var prizePool       = payoutPool.PrizePool(matches);
                var totalInCategory = ticketCategories[matches].Sum(ticket => ticket.Amount);
                foreach (var ticket in ticketCategories[matches])
                {
                    var winnings = ticket.Amount * prizePool / totalInCategory;
                    players[ticket.PlayerId].AdjustBalance(winnings);
                    ticket.Settle(winnings);
                }
            }
        }