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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
        }