/// <summary> /// Internals the find top most frequently used. /// </summary> /// <param name="maximum">The maximum.</param> /// <returns></returns> internal TaskDescription[] InternalFindTopMostFrequentlyUsed(int maximum) { TaskDescriptionsProvider provider = this.Engine.TaskDescriptionsProvider; List <TaskDescription> localList = new List <TaskDescription>(maximum); // ...sort by usage MostRecentlyUsedItem[] items = this._items.ToArray(); Array.Sort(items, MostRecentlyUsedItem.UsageComparer); foreach (MostRecentlyUsedItem mruItem in items) { TaskDescription description = provider.FindDescription(mruItem.Id); if (description != null) { localList.Add(description); } if (localList.Count == maximum) { break; } } return(localList.ToArray()); }
/// <summary> /// Generates an object from its XML representation. /// </summary> /// <param name="reader">The <see cref="T:System.Xml.XmlReader"></see> stream from which the object is deserialized.</param> public void ReadXml(XmlReader reader) { if (reader == null) { throw new ArgumentNullException(nameof(reader)); } TaskDescriptionsProvider provider = AppContext.Current.TaskDescriptionsProvider; while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { switch (reader.LocalName) { case "TaskDescription": AppendTaskDescription(reader, provider); break; default: break; } } } }
/// <summary> /// Froms the db reader. /// </summary> /// <param name="reader">The reader.</param> /// <returns></returns> private void FromDbReader(SqlDataReader reader, Collection <TaskDescription> descriptions) { TaskDescription td = new TaskDescription { Id = reader.GetGuid(0), Name = reader.GetString(2) }; if (!reader.IsDBNull(3)) { td.Description = reader.GetString(3); } td.NoNagMinutes = reader.GetInt32(4); td.Colour = reader.GetString(5); td.Sequence = reader.GetInt32(6); td.CustomFlags = reader.GetInt32(7); td.IsPrivate = reader.GetBoolean(8); td.IsCategory = reader.GetBoolean(9); td.IsEvent = reader.GetBoolean(10); if (!reader.IsDBNull(11)) { td.GroupName = reader.GetString(11); } td.MenuColumn = reader.GetInt32(12); if (!reader.IsDBNull(13)) { td.Url = reader.GetString(13); } if (!reader.IsDBNull(14)) { td.Server = reader.GetString(14); } if (!reader.IsDBNull(15)) { td.ValidFromDate = reader.GetDateTime(15); } if (!reader.IsDBNull(16)) { td.ValidToDate = reader.GetDateTime(16); } td.Enabled = reader.GetBoolean(17); if (!reader.IsDBNull(1)) { Guid parentId = reader.GetGuid(1); TaskDescription parent = TaskDescriptionsProvider.FindChildInHierarchy(descriptions, parentId); if (parent != null) { parent.Children.Add(td); } } else { descriptions.Add(td); } }
/// <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); } }
/// <summary> /// Initialises this instance. /// </summary> public void Initialise() { if (SettingsProvider == null) { return; } if (SettingsProvider.Get(STRING_APPINSTANCEKEY, string.Empty).ToString().Length == 0) { SettingsProvider.Set(STRING_APPINSTANCEKEY, Guid.NewGuid().ToString("D"), PersistHint.AcrossSessions); SettingsProvider.Set(STRING_APPINSTANCECREATEDATE, DateTime.Now.ToString("F"), PersistHint.AcrossSessions); } TaskDescriptionsProvider.LoadDescriptions(); SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged; Trace.TraceInformation("AppContext:Initialise"); }
/// <summary> /// Internals the find top most recently used. /// </summary> /// <param name="maximum">The maximum.</param> /// <returns></returns> internal TaskDescription[] InternalFindTopMostRecentlyUsed(int maximum) { TaskDescriptionsProvider provider = this.Engine.TaskDescriptionsProvider; List <TaskDescription> localList = new List <TaskDescription>(maximum); foreach (MostRecentlyUsedItem mruItem in this._items) { TaskDescription description = provider.FindDescription(mruItem.Id); if (description != null) { localList.Add(description); } if (localList.Count == maximum) { break; } } return(localList.ToArray()); }
/// <summary> /// Initalises the engine. /// </summary> private void InitaliseEngine() { LicenseManagement(); _heartbeatTimer = new System.Timers.Timer { Enabled = false, Interval = int.Parse(Properties.Resources.HeartbeatInterval) }; _heartbeatTimer.Elapsed += InternalHeartbeatTimerElapsed; _nagTimer = new System.Timers.Timer { 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 if (ConfigurationManager.GetSection(ConfigurationSection.SectionName) is ConfigurationSection config) { if (config.Providers == null || 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"); }