Esempio n. 1
0
        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());
        }
Esempio n. 2
0
        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());
        }