Exemple #1
0
        public BonusRedemption(Player player, Bonus bonus, RedemptionParams redemptionParams)
        {
            var bonusReward = bonus.CalculateReward(player, redemptionParams);

            Data = new Data.BonusRedemption
            {
                Amount    = bonusReward,
                Player    = player.Data,
                Bonus     = bonus.Data,
                CreatedOn = SystemTime.Now.ToBrandOffset(bonus.Data.Template.Info.Brand.TimezoneId)
            };
            if (redemptionParams != null)
            {
                Data.Parameters = redemptionParams;
            }

            bonus.Data.Statistic.TotalRedeemedAmount += bonusReward;
            bonus.Data.Statistic.TotalRedemptionCount++;

            Events = new List <IDomainEvent>();
            var redeemedEvent = new BonusRedeemed
            {
                AggregateId  = Data.Id,
                BonusId      = bonus.Data.Id,
                PlayerId     = player.Data.Id,
                BonusName    = bonus.Data.Name,
                PlayerName   = player.Data.Name,
                Amount       = bonusReward,
                CurrencyCode = player.Data.CurrencyCode,
                IssuedByCs   = Data.Parameters.IsIssuedByCs
            };

            if (Data.Parameters.IsIssuedByCs == false)
            {
                redeemedEvent.EventCreatedBy = Data.Player.Name;
            }

            Events.Add(redeemedEvent);
        }
Exemple #2
0
 public BonusRedemption(Data.BonusRedemption data)
 {
     Data   = data;
     Events = new List <IDomainEvent>();
 }