private static ErrorCode DefaultOperation() { var dataDir = Path.GetFullPath(Environment.ExpandEnvironmentVariables(Configuration.DataDirectoryPath)); if (!Directory.Exists(dataDir)) { Console.Error.WriteLine("Data directory at {0} does not exist.", dataDir); return ErrorCode.DirectoryMissing; } var portfolioFile = Path.Combine(dataDir, "portfolio.js"); if (!File.Exists(portfolioFile)) { Console.Error.WriteLine("Portfolio file at {0} does not exist.", portfolioFile); return ErrorCode.FileMissing; } var portfolioFileContents = File.ReadAllText(portfolioFile, Encoding.UTF8); var portfolio = JsonConvert.DeserializeObject<Portfolio>(portfolioFileContents); var categoriesFile = Path.Combine(dataDir, "categories.js"); if (!File.Exists(categoriesFile)) { Console.Error.WriteLine("Categories file at {0} does not exist.", categoriesFile); return ErrorCode.FileMissing; } var categoryFileContents = File.ReadAllText(categoriesFile, Encoding.UTF8); var categories = JsonConvert.DeserializeObject<IEnumerable<Category>>(categoryFileContents); var quoter = new YahooStockService(new YahooServiceFactory()); var reporter = new StringValueReporter(quoter); var report = reporter.GetReport(portfolio); Console.Write(report); return ErrorCode.NoError; }
public void Test() { var portfolio = new Portfolio { Name = "Test Portfolio" }; using (var tokenManager = new QuestradeApiTokenManager(new Configuration())) { var api = new QuestradeService(tokenManager, new InMemorySecurityRepository(), new InMemoryCategoryRepository()); portfolio.Accounts = api.GetAccounts(); foreach (var account in portfolio.Accounts) { account.Positions = api.GetPositions(account); account.Transactions = api.GetTransactions(account, new DateTime(2008, 1, 1), DateTime.Now); } } var quoter = new YahooStockService(new YahooServiceFactory()); var reporter = new StringValueReporter(quoter); var report = reporter.GetReport(portfolio); Console.Out.Write(report); }
private static ErrorCode QuickQuestradeValueReportOperation(string portfolioName) { var portfolio = new Portfolio { Name = portfolioName }; using (var tokenManager = new QuestradeApiTokenManager(Configuration)) { var api = new QuestradeService(tokenManager, new InMemorySecurityRepository(), new InMemoryCategoryRepository()); portfolio.Accounts = api.GetAccounts(); foreach (var account in portfolio.Accounts) { account.Positions = api.GetPositions(account); account.Transactions = api.GetTransactions(account, new DateTime(2008, 1, 1), DateTime.Now); } var reporter = new StringValueReporter(api); var report = reporter.GetReport(portfolio); Console.Write(report); } return ErrorCode.NoError; }
private static ErrorCode QuickFundbotValueReportOperation(string portfolioName) { var dataDir = Path.GetFullPath(Environment.ExpandEnvironmentVariables(Configuration.DataDirectoryPath)); if (!Directory.Exists(dataDir)) { Console.Error.WriteLine("Data directory at {0} does not exist.", dataDir); return ErrorCode.DirectoryMissing; } var fundbotBuysFile = Path.Combine(dataDir, "buys.csv"); if (!File.Exists(fundbotBuysFile)) { Console.Error.WriteLine("Fundbot file at {0} does not exist.", fundbotBuysFile); return ErrorCode.FileMissing; } var factory = new DataImporterFactory(); var fundBotImporter = factory.GetFundbotTransactions(fundbotBuysFile); var transactions = fundBotImporter.GetTransactions(); var account = new Account { Name = portfolioName }; var portfolio = new Portfolio { Name = portfolioName, Accounts = new List<Account> { account } }; account.Portfolio = portfolio; foreach (var transaction in transactions) { transaction.Account = account; } var portfolioService = new PortfolioService(portfolio); portfolioService.UpdateWith(transactions); var quoter = new YahooStockService(new YahooServiceFactory()); var reporter = new StringValueReporter(quoter); var report = reporter.GetReport(portfolio); Console.Write(report); return ErrorCode.NoError; }