Пример #1
0
        public void Handle(BonusRedeemed @event)
        {
            if (@event.IssuedByCs)
            {
                var remark = string.Format(
                    "Bonus ({0}) of {1} was issued to Player ({2})",
                    @event.BonusName,
                    @event.Amount.Format(),
                    @event.PlayerName);

                AddActivityLog(AdminActivityLogCategory.Bonus, "Bonus issued by CS", @event, @event.EventCreatedBy, remark);
            }
        }
Пример #2
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);
        }
 public void Consume(BonusRedeemed message)
 {
     _eventHandlers.Handle(message);
 }