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 BonusRedemption(Data.BonusRedemption data) { Data = data; Events = new List <IDomainEvent>(); }