public void Handle(WalletTemplateUpdated @event) { var bonusRepository = _container.Resolve <IBonusRepository>(); var brand = bonusRepository.Brands.SingleOrDefault(b => b.Id == @event.BrandId); if (brand == null) { throw new RegoException(string.Format(NoBrandFormat, @event.BrandId)); } var brandPlayers = bonusRepository.Players.Where(p => p.Brand.Id == brand.Id); foreach (var walletTemplate in @event.NewWalletTemplates) { var walletTemplateData = new WalletTemplate { Id = walletTemplate.Id, IsMain = walletTemplate.IsMain, Products = walletTemplate.ProductIds.Select(id => new Product { ProductId = id }).ToList() }; brand.WalletTemplates.Add(walletTemplateData); foreach (var brandPlayer in brandPlayers) { brandPlayer.Wallets.Add(new Wallet { Player = brandPlayer, Template = walletTemplateData }); } } foreach (var walletTemplateDto in @event.RemainedWalletTemplates) { var walletTemplate = brand.WalletTemplates.Single(wt => wt.Id == walletTemplateDto.Id); walletTemplate.Products.Clear(); walletTemplate.Products.AddRange(walletTemplateDto.ProductIds.Select(id => new Product { ProductId = id })); walletTemplate.IsMain = walletTemplate.IsMain; } bonusRepository.SaveChanges(); }
public void Consume(WalletTemplateUpdated message) { _brandSubscriber.Handle(message); }
public void Consume(WalletTemplateUpdated message) { _eventHandlers.Handle(message); }
public void Handle(WalletTemplateUpdated @event) { AddActivityLog(AdminActivityLogCategory.Brand, "Wallet Updated", @event, @event.EventCreatedBy, null); }