/// <summary> /// This class should be created and passed into Application.Run( ... ) /// </summary> /// <param name="options"> </param> public GwupeClientAppContext(List <GwupeOption> options) { CurrentAppContext = this; Options = options; XmlConfigurator.Configure(Assembly.GetExecutingAssembly().GetManifestResourceStream("Gwupe.Agent.log4net.xml")); StartupVersion = Regex.Replace(FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).FileVersion, "\\.[0-9]+$", ""); Logger.Info("Gwupe" + Program.BuildMarker + ".Agent Starting up [" + StartupVersion + "]"); #if DEBUG foreach (var manifestResourceName in Assembly.GetExecutingAssembly().GetManifestResourceNames()) { Logger.Debug("Embedded Resource : " + manifestResourceName); } #endif GwupeServiceProxy = new GwupeServiceProxy(); ConnectionManager = new ConnectionManager(); LoginManager = new LoginManager(); P2PManager = new P2PManager(); RosterManager = new RosterManager(); EngagementManager = new EngagementManager(); NotificationManager = new NotificationManager(); SearchManager = new SearchManager(); CurrentUserManager = new CurrentUserManager(); TeamManager = new TeamManager(); SettingsManager = new SettingsManager(); UIManager = new UIManager(); _requestManager = new RequestManager(); ScheduleManager = new ScheduleManager(); ScheduleManager.AddTask(new CheckUpgradeTask(this) { PeriodSeconds = 120 }); ScheduleManager.AddTask(new CheckServiceTask(this) { PeriodSeconds = 120 }); ScheduleManager.AddTask(new DetectIdleTask(this)); RepeaterManager = new RepeaterManager(); RelationshipManager = new RelationshipManager(); PartyManager = new PartyManager(); SetupChangeLog(); // Start all the Active Managers UIManager.Start(); ScheduleManager.Start(); ConnectionManager.Start(); LoginManager.Start(); // Set correct last version Reg.LastVersion = StartupVersion; }