public DepositSubmitted Submit() { var depositSubmitted = new DepositSubmitted { DepositId = Data.Id, PlayerId = Data.PlayerId, TransactionNumber = Data.TransactionNumber, Amount = Data.Amount, Submitted = Data.Created, SubmittedBy = Data.CreatedBy, CurrencyCode = Data.CurrencyCode, PaymentMethod = PaymentMethodDto.OfflinePayMethod, DepositType = Data.DepositType, Status = Data.Status.ToString(), Remarks = Data.Remark, EventCreated = Data.Created, }; if (Data.BankAccount != null) { var bankAccount = Data.BankAccount; depositSubmitted.BankAccountName = bankAccount.AccountName; depositSubmitted.BankAccountNumber = bankAccount.AccountNumber; depositSubmitted.BankAccountId = bankAccount.AccountId; depositSubmitted.BankProvince = bankAccount.Province; depositSubmitted.BankBranch = bankAccount.Branch; depositSubmitted.BankName = bankAccount.Bank != null ? bankAccount.Bank.BankName : null; depositSubmitted.BankAccount = Data.BankAccount.Id; } return(depositSubmitted); }
public void Handle(DepositSubmitted @event) { var bonusCommands = _container.Resolve <BonusCommands>(); var bonusQueries = _container.Resolve <BonusQueries>(); var bus = _container.Resolve <IEventBus>(); var bonusRepository = _container.Resolve <IBonusRepository>(); using (var scope = CustomTransactionScope.GetTransactionScope()) { var player = bonusRepository.GetLockedPlayer(@event.PlayerId); var redemptionParams = new RedemptionParams { TransferAmount = @event.Amount, TransferExternalId = @event.DepositId, TransferWalletTemplateId = player.Data.Brand.WalletTemplates.Single(wt => wt.IsMain).Id }; bonusQueries .GetQualifiedAutomaticBonusIds(@event.PlayerId, player.DepositQuailifiedBonusType, redemptionParams) .ForEach(bonusId => { var redemption = bonusCommands.RedeemBonus(@event.PlayerId, bonusId, redemptionParams); redemption.Events.ForEach(bus.Publish); }); scope.Complete(); } }
public void WhenNewActivityLogIsCreated() { ScenarioContext.Current.Should().ContainKey("playerId"); var playerId = ScenarioContext.Current.Get <Guid>("playerId"); var @event = new DepositSubmitted { PlayerId = playerId, Amount = 1 }; PlayerHelper.AddActivityLog("Deposit submitted", @event, playerId, string.Empty, string.Empty); }
public void Consume(DepositSubmitted submittedEvent) { var paymentRepository = _container.Resolve <IPaymentRepository>(); var record = paymentRepository.Deposits.SingleOrDefault(r => r.Id == submittedEvent.DepositId); if (record != null) { throw new RegoException(string.Format("deposit record '{0}' already exists", submittedEvent.DepositId)); } var player = paymentRepository.Players .SingleOrDefault(x => x.Id == submittedEvent.PlayerId); if (player == null) { throw new RegoException(string.Format("plaer '{0}' not found", submittedEvent.PlayerId)); } var brand = paymentRepository.Brands.FirstOrDefault(x => x.Id == player.BrandId); if (brand == null) { throw new RegoException(string.Format("brand '{0}' not found", player.BrandId)); } record = new Deposit { Id = submittedEvent.DepositId, Licensee = brand.LicenseeName, BrandId = brand.Id, PlayerId = player.Id, ReferenceCode = submittedEvent.TransactionNumber, PaymentMethod = submittedEvent.PaymentMethod, CurrencyCode = submittedEvent.CurrencyCode, Amount = submittedEvent.Amount, UniqueDepositAmount = 0, Status = submittedEvent.Status, DateSubmitted = submittedEvent.Submitted, SubmittedBy = submittedEvent.SubmittedBy, DepositType = submittedEvent.DepositType, BankAccountId = submittedEvent.BankAccount }; paymentRepository.Deposits.Add(record); paymentRepository.SaveChanges(); }
public void Handle(DepositSubmitted submittedEvent) { var repository = _container.Resolve <IReportRepository>(); var record = repository.DepositRecords.SingleOrDefault(r => r.DepositId == submittedEvent.DepositId); if (record != null) { throw new RegoException(string.Format("deposit record '{0}' already exists", submittedEvent.DepositId)); } var player = _container.Resolve <PlayerQueries>().GetPlayer(submittedEvent.PlayerId); var brand = _container.Resolve <BrandQueries>().GetBrandOrNull(player.BrandId); record = new DepositRecord { Licensee = brand != null ? brand.Licensee.Name : null, Brand = brand != null ? brand.Name : null, Username = player != null ? player.Username : null, IsInternalAccount = player != null ? player.InternalAccount : true, VipLevel = player != null && player.VipLevel != null ? player.VipLevel.Code : null, TransactionId = submittedEvent.TransactionNumber, DepositId = submittedEvent.DepositId, PaymentMethod = submittedEvent.PaymentMethod, Currency = submittedEvent.CurrencyCode, Amount = submittedEvent.Amount, Status = submittedEvent.DepositType == DepositType.Offline ? OfflineDepositStatus.New.ToString() : OnlineDepositStatus.Processing.ToString(), Submitted = submittedEvent.Submitted, SubmittedBy = submittedEvent.SubmittedBy, DepositType = submittedEvent.DepositType.ToString(), BankAccountName = submittedEvent.BankAccountName, BankAccountId = submittedEvent.BankAccountId, BankName = submittedEvent.BankName, BankProvince = submittedEvent.BankProvince, BankBranch = submittedEvent.BankBranch, BankAccountNumber = submittedEvent.BankAccountNumber }; repository.DepositRecords.Add(record); repository.SaveChanges(); }
// Deposit category public void Consume(DepositSubmitted message) { _depositHandlers.Handle(message); }
public void Handle(DepositSubmitted @event) { AddActivityLog("Create " + @event.DepositType + " Deposit", @event, @event.PlayerId, @event.Remarks); }
public void Consume(DepositSubmitted message) { _paymentSubscriber.Handle(message); }
public void Handle(DepositSubmitted @event) { AddActivityLog(AdminActivityLogCategory.Deposit, @event); }