public IEnumerable <PrincipalReportDto> GetMeetingHostReport(IAdobeConnectProxy provider) { if (provider == null) { throw new ArgumentNullException(nameof(provider)); } var group = provider.GetGroupsByType(PrincipalType.live_admins); if (group.Status.Code != StatusCodes.ok) { throw new InvalidOperationException("AC.GetGroupsByType error"); } PrincipalCollectionResult usersResult = provider.GetGroupUsers(group.Values.First().PrincipalId); if (usersResult.Status.Code != StatusCodes.ok) { throw new InvalidOperationException("AC.GetGroupUsers error"); } var result = new List <PrincipalReportDto>(); foreach (Principal user in usersResult.Values) { var item = new PrincipalReportDto { Principal = PrincipalDto.Build(user), }; TransactionCollectionResult trxResult = provider.ReportMeetingTransactionsForPrincipal(user.PrincipalId, startIndex: 0, limit: 1); if (trxResult.Status.Code != StatusCodes.ok) { throw new InvalidOperationException("AC.ReportMeetingTransactionsForPrincipal error"); } TransactionInfo trx = trxResult.Values.FirstOrDefault(); if (trx != null) { item.LastTransaction = TransactionInfoDto.Build(trx); } result.Add(item); } return(result.AsReadOnly()); }
public IHttpActionResult MakePayment(TransactionInfoDto transactionDto) { var transactions = new List <Transaction>(); var userId = User.Identity.GetUserId(); var transactionType = unitOfWork.TransactionTypes.GetTransactionType(transactionDto.Category); var debitAccount = unitOfWork.BankAccounts.GetJustBankAccount(transactionDto.DebitAccNo); var creditAccount = unitOfWork.BankAccounts.GetJustBankAccount(transactionDto.CreditAccNo); var tsmBankAcc = unitOfWork.BankAccounts.GetTsmBankAcc(); if (creditAccount == null || debitAccount == null) { return(NotFound()); } if (!debitAccount.InitiateTransaction(creditAccount, transactionDto.Amount, transactionType, tsmBankAcc, out transactions)) { return(BadRequest("Transaction could not be completed.")); } foreach (var transaction in transactions) { unitOfWork.Transactions.AddTransaction(transaction); } unitOfWork.Complete(); var transHub = new { DebitAccountNo = debitAccount.AccountNumber, DebitBalance = debitAccount.Balance, CreditAccountNo = creditAccount.AccountNumber, CreditBalance = creditAccount.Balance, DebitAmount = transactions[0].DebitAmount, Time = transactions[0].ValueDateTime.ToLongTimeString(), Date = transactions[0].ValueDateTime.ToLongDateString() }; SignalHub.GetTransactions(transHub); return(Ok()); }