internal static void Main(string[] args) { _appConfigurationManager = new AppConfigurationManager(); _commandLineArgumentManager = new CommandLineArgumentManager(_appConfigurationManager.UseCommandLineArgs, args); string logFile = _appConfigurationManager.GetLogFile(); Log.Logger = new LoggerConfiguration() .WriteTo.Console(LogEventLevel.Verbose) //.WriteTo.File(logFile, rollingInterval: RollingInterval.Day, restrictedToMinimumLevel: LogEventLevel.Verbose) .CreateLogger(); _logger = Log.Logger; InitialiseContainer(); ISimulationTypeManager simulationTypeManager = _container.Resolve <ISimulationTypeManager>(); simulationTypeManager.InitialiseManager(_commandLineArgumentManager.GetSimulationType()); if (simulationTypeManager.SimulationManager == null) { _logger.Fatal("Unknown simulation type supplied. Unable to proceed..."); return; } simulationTypeManager.SimulationManager.Start(); IAccount primaryAccount = _appConfigurationManager.GetAccount(); ISimulationParameters simulationParameters = _container.Resolve <ISimulationParameters>(); _logger.Information("Portfolio Simulation"); _logger.Information("===================="); _logger.Information($"Initial account: Currency: {primaryAccount.Currency} Balance: {primaryAccount.Balance}"); _logger.Information($"Simulation Period: {simulationParameters.SimulationStartDate.ToShortDateString()} - {simulationParameters.SimulationEndDate.ToShortDateString()}"); _logger.Information($"Simulation Type: {simulationParameters.SimulationType}"); _logger.Information("Simulation starting..."); var notificationManager = _container.Resolve <INotificationManager>(); notificationManager.SimulationEnded += (s, e) => _simulationComplete = true; notificationManager.TriggerSimulationStart(); while (!_simulationComplete) { System.Threading.Thread.Sleep(1000 * 10); // sleep for 10 seconds } }
public PortfolioValuationReporter(ILogger logger, INotificationManager notificationManager, IStatisticsCalculationManager statisticsCalculationManager, ISimulationTypeManager simulationTypeManager, IXmlModelFactory xmlModelFactory, IPortfolioValuationSummaryReportWriter xmlWriter) { _logger = logger; _statisticsCalculationManager = statisticsCalculationManager; _notificationManager = notificationManager; _simulationTypeManager = simulationTypeManager; _xmlModelFactory = xmlModelFactory; _portfolioValuationSummary = _xmlModelFactory.GetValuationSummaryDataModel(); _xmlWriter = xmlWriter; _logger.Information("HoldingsReporter: Instantiation successful."); }