Ejemplo n.º 1
0
        /// <summary>
        /// Retrieve a statement for a single bank account. Includes transaction details.
        /// </summary>
        /// <param name="account">The bank account to retrieve statement data for</param>
        /// <param name="startDate">Start of date range for transactions</param>
        /// <param name="endDate">End of date range for transactions</param>
        /// <returns>List of statements containing the requested data.</returns>
        public async Task <Tuple <IEnumerable <Statement>, string> > GetStatement(Types.BankAccount account, DateTimeOffset startDate, DateTimeOffset endDate)
        {
            // Ensure service catalog is populated
            await PopulateServiceProfiles();

            // Retrieve request profile for this message set
            var requestProfile = GetMessageSetRequestProfile(typeof(BankMessageSetV1));

            // Form specification of the account to retrieve information for
            var bankAccount = getOFXBankAccount(account);

            // Form transaction inclusion specification for date range. Always include transaction details
            var transactionInclusion = new IncTransaction
            {
                DTSTART = OFXUtils.DateToOFX(startDate),
                DTEND   = OFXUtils.DateToOFX(endDate),
                INCLUDE = BooleanType.Y
            };

            // Wrap in statement request
            var statementRequest = new StatementRequest
            {
                BANKACCTFROM = bankAccount,
                INCTRAN      = transactionInclusion
            };

            // Wrap in transaction
            var transactionRequest = new StatementTransactionRequest
            {
                TRNUID = GetNextTransactionId(),
                STMTRQ = statementRequest
            };

            // Wrap in messageset
            var messageSet = new BankRequestMessageSetV1 {
                Items = new AbstractRequest[1] {
                    transactionRequest
                }
            };

            // Gather all message sets in the request
            var requestMessageSets = new List <AbstractTopLevelMessageSet>
            {
                CreateSignonRequest(userCredentials, requestProfile),
                messageSet
            };

            // Send to service and await response
            Protocol.OFX response = await new Transport(requestProfile.ServiceEndpoint).sendRequestAsync(requestMessageSets.ToArray());

            // TODO: Check response for errors
            string errorMessage;

            // Extract statement data and return
            return(Tuple.Create(Statement.CreateFromOFXResponse(response, out errorMessage), errorMessage));
        }
Ejemplo n.º 2
0
        public StatementResponse GetTransactions(StatementRequest payload)
        {
            var    _client        = new RestActions(_contentRootPath);
            string url            = _configSettingManager.ArmBaseUrl + "/Portfolio/Transaction";
            var    encryptedValue = new SecureCredentials();

            payload.ServiceUsername = encryptedValue.DecryptCredentials(_configSettingManager.ArmServiceUsername);
            payload.ServicePassword = encryptedValue.DecryptCredentials(_configSettingManager.ArmServicePassword);
            return(_client.CallRestAction <StatementResponse, StatementRequest>(payload, url));
        }
Ejemplo n.º 3
0
        public StatementResponse GetClientTransactions(AuthenticateResponse user,
                                                       AccountStatementViewModel model)
        {
            var response = new StatementResponse();
            var request  = new StatementRequest
            {
                MembershipNumber = user.MembershipKey,
                EndDate          = model.EndDate.Value.AddDays(1),
                StartDate        = model.StartDate.Value.AddDays(1),
                TransactionType  = model.TransactionType,
                ProductCode      = model.ProductCode
            };

            response = _clientService.GetTransactions(request);

            return(response);
        }
 public IActionResult Statement([FromBody] StatementRequest statementRequest)
 {
     try
     {
         var transactions = _accountService.Statement(statementRequest.AccountNumber, statementRequest.InitialDate, statementRequest.EndDate);
         return(Ok(new StatementResponse(statementRequest.AccountNumber, transactions)));
     }
     catch (AccountNotFoundException)
     {
         return(BadRequest("Account Number not found."));
     }
     catch (AccountBlockedException)
     {
         return(Ok("Account is blocked."));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
        public async Task <IActionResult> statement([FromBody] StatementRequest request)
        {
            List <StatementResponseDTO> r = new List <StatementResponseDTO>();

            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(Commons.Helpers.Utility.GetResponse(ModelState)));
                }

                int gs = await _orclRepo.GenerateStatement(request);

                if (gs == 0)
                {
                    r = await _orclRepo.FilterStatement(request);

                    if (request.noOfRecords > 0)
                    {
                        r = r.Take(request.noOfRecords).ToList();
                    }
                }
                else
                {
                    return(StatusCode((int)HttpStatusCode.ExpectationFailed,
                                      new Response()
                    {
                        message = "Staement Generation Failed", status = false
                    }));
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                _logger.LogError($"{request.accountNumber} ::- {ex.ToString()}");
                return(StatusCode((int)HttpStatusCode.InternalServerError, Commons.Helpers.Utility.GetResponse(ex)));
            }

            return(CreatedAtAction("statement", r));
        }
Ejemplo n.º 6
0
 // [LogUsage("GetAllStatements")]
 public async Task <StatementResponse> GetAccountStatement(StatementRequest statementRequest)
 {
     return(await _statement.GetAccountStatementAsync(statementRequest));
 }
Ejemplo n.º 7
0
 public HttpStatusCode PostFile(StatementRequest request)
 {
     return(HttpStatusCode.Created);
 }
Ejemplo n.º 8
0
 public Task <StatementResponse> GetAccountStatementAsync(StatementRequest statementRequest)
 {
     throw new NotImplementedException();
 }