/// <summary> /// Initalises the engine. /// </summary> private void InitaliseEngine() { LicenseManagement(); _heartbeatTimer = new System.Timers.Timer(); _heartbeatTimer.Enabled = false; _heartbeatTimer.Interval = int.Parse(Properties.Resources.HeartbeatInterval); _heartbeatTimer.Elapsed += InternalHeartbeatTimerElapsed; _nagTimer = new System.Timers.Timer(); _nagTimer.Enabled = false; _nagTimer.Elapsed += InternalNagTimerElapsed; _appFolder = (new FileInfo(Assembly.GetExecutingAssembly().Location)).Directory; _dataFolder = new DirectoryInfo(System.Windows.Forms.Application.UserAppDataPath); if (_dataFolder.Exists == false) { _dataFolder.Create(); _dataFolder.Refresh(); } //Read Provider Configuration ConfigurationSection config = ConfigurationManager.GetSection(ConfigurationSection.SectionName) as ConfigurationSection; if (config != null) { if (config.Providers.Count == 0) { Trace.TraceError(Properties.Resources.NoProvidersFoundInConfigurationFile); throw new InvalidOperationException(Properties.Resources.NoProvidersFoundInConfigurationFile); } // The providers are created and initalised in a special order, // first is the // identity provider (work out who is using this application) _identityProvider = InitializeProvider(config, "IdentityProvider") as IdentityProvider; _identityProvider.DiscoverIdentity(); if(!_identityProvider.Principal.Identity.IsAuthenticated) { Trace.TraceError(Properties.Resources.IdentityCouldNotBeEstablished); throw new InvalidOperationException(Properties.Resources.IdentityCouldNotBeEstablished); } // Then comes the plugin provider _pluginsProvider = InitializeProvider(config, "PluginsProvider") as PluginsProvider; _pluginsProvider.DiscoverPlugins(); // then comes the TaskDescription and Task Activity providers _taskDescriptionsProvider = InitializeProvider(config, "TaskDescriptionsProvider") as TaskDescriptionsProvider; _taskActivitiesProvider = InitializeProvider(config, "TaskActivitiesProvider") as TaskActivitiesProvider; // The UI provider then gets created and initalised _uiProvider = InitializeProvider(config, "UIProvider") as UIProvider; // Finnaly the Users memory provider _userMemoryProvider = InitializeProvider(config, "UserMemoryProvider") as UserMemoryProvider; } else { Trace.TraceError(Properties.Resources.ConfigurationFileInvalid); throw new InvalidOperationException(Properties.Resources.ConfigurationFileInvalid); } Trace.TraceInformation("TaskClerkSDK:InitaliseEngine"); }
/// <summary> /// Appends the task description. /// </summary> /// <param name="reader">The reader.</param> /// <param name="provider">The provider.</param> private void AppendTaskDescription(XmlReader reader, TaskDescriptionsProvider provider) { Guid descriptionId = new Guid(reader.GetAttribute("id")); TaskDescription description = provider.FindDescription(descriptionId); if (description != null) { // TODO: Check for duplicates and remove them _pinnedTaskDescriptions.Add(description); } }