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(); }
public ActionResult ExportDepositReport(DepositRecord filters, string sortColumnName, string sortOrder, string hiddenColumns = null) { return(ExportReport(_queries.GetDepositRecordsForExport(), filters, sortColumnName, sortOrder, hiddenColumns)); }