protected override DTO.ServiceResponse ProcessScrape(string outputPath, string debugID) { DTO.ServiceResponse response = null; string accountsFilePath = Path.Combine(outputPath, "accounts.json"); if (File.Exists(accountsFilePath)) { string accountJson = File.ReadAllText(accountsFilePath); response = new DTO.AccountsResponse(); var accounts = JsonConvert.DeserializeObject <List <DTO.Account> > (accountJson); if (accounts != null && accounts.Count() > 0) { ((DTO.AccountsResponse)response).accounts = accounts; } else { throw new Exception("No accounts found."); } } else { response = new DTO.ResponseError(HttpStatusCode.BadRequest) { friendly_error = "An error occured when atempting to get list of accounts.", detailed_error = string.Format("accounts file missing ({0})", debugID) }; } return(response); }
public void TestBuildResponseForCreditCard() { string raw = File.ReadAllText("files/ACCTINFORS_CREDIT_CARD.ofx"); var parser = new Parse.OfxToXmlParser(raw); XElement parsed = parser.Parse(); var fetcher = new OfxAccountsFetcher(null); DTO.AccountsResponse response = (DTO.AccountsResponse)fetcher.BuildResponse(parsed); Assert.AreEqual(2, response.accounts.Count); Assert.AreEqual("CREDIT CARD", response.accounts [0].description); }
public void TestBuildResponseForChecking() { string raw = File.ReadAllText("files/ACCTINFORS_CHECKING.ofx"); var parser = new Parse.OfxToXmlParser(raw); XElement parsed = parser.Parse(); var fetcher = new OfxAccountsFetcher(null); DTO.AccountsResponse response = (DTO.AccountsResponse)fetcher.BuildResponse(parsed); Assert.AreEqual(1, response.accounts.Count); Assert.AreEqual("MYACCESS CHECKING", response.accounts [0].description); }
public DTO.AccountsResponse BuildAccountsResponse(XElement parsedOfx) { var response = new DTO.AccountsResponse(); var accounts = parsedOfx.Element("ACCTINFORS"); if (accounts != null) { response.accounts = (from c in accounts.Descendants("ACCTINFO") select new DTO.Account { bank_id = ((c.Element("BANKID") != null) ? c.Element("BANKID").Value : ""), account_id = c.Element("ACCTID").Value, account_type = c.Element("ACCTTYPE").Value, description = c.Element("DESC").Value }).ToList(); } else { throw new OfxParseException("ACCTINFORS element missing."); } return(response); }