public MainWindow(RiotControlConfiguration configuration, Program program, StatisticsService statisticsService) { InitializeComponent(); Configuration = configuration; Program = program; StatisticsService = statisticsService; IsFirstLine = true; ShuttingDown = false; DataContext = new MainWindowDataContext(configuration); Assembly entryAssembly = Assembly.GetEntryAssembly(); Version version = entryAssembly.GetName().Version; Title = string.Format("Riot Control r{0}", version.Revision); RevisionLabel.Content = string.Format("r{0}", version.Revision); TimeLabel.Content = Nil.Assembly.GetAssemblyBuildTime(entryAssembly).ToString(); WebsiteLabel.Content = Website; UpdateHelpLabel(); var iconStream = System.Windows.Application.GetResourceStream(new Uri("pack://application:,,,/Resources/Icon.ico")).Stream; TrayIcon = new NotifyIcon(); TrayIcon.Icon = new Icon(iconStream); TrayIcon.MouseDoubleClick += TrayIconDoubleClick; iconStream.Close(); LoadOptions(); if (Configuration.StartMinimised) { WindowState = WindowState.Minimized; if (Configuration.MinimiseToTray) { //ShowInTaskbar = false; TrayIcon.Visible = true; } } }
public Program() { Startup.SetCurrentDirectory(); Serialiser = new Nil.Serialiser<RiotControlConfiguration>(ConfigurationPath); Configuration = Serialiser.Load(); //Check for configuration errors Configuration.Check(); //Upgrade outdated configurations Configuration.Upgrade(); //Store it right away to automatically remove unused content and provide new default values Serialiser.Store(Configuration); Database databaseProvider = new Database(Configuration); StatisticsService = new StatisticsService(this, Configuration, databaseProvider); WebService = new WebService(this, Configuration, StatisticsService, databaseProvider); UpdateService = new UpdateService(Configuration, this, this); MainWindow = new MainWindow(Configuration, this, StatisticsService); }