/// <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)); }
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)); }
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)); }
// [LogUsage("GetAllStatements")] public async Task <StatementResponse> GetAccountStatement(StatementRequest statementRequest) { return(await _statement.GetAccountStatementAsync(statementRequest)); }
public HttpStatusCode PostFile(StatementRequest request) { return(HttpStatusCode.Created); }
public Task <StatementResponse> GetAccountStatementAsync(StatementRequest statementRequest) { throw new NotImplementedException(); }