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;
}