//--------------------// #region Apps /// <inheritdoc/> protected override AppEntry AddAppInternal(FeedTarget target) { // Prevent double entries if (AppList.ContainsEntry(target.Uri)) { throw new InvalidOperationException(string.Format(Resources.AppAlreadyInList, target.Feed.Name)); } // Get basic metadata and copy of capabilities from feed var appEntry = new AppEntry { InterfaceUri = target.Uri, Name = target.Feed.Name, Timestamp = DateTime.UtcNow }; appEntry.CapabilityLists.AddRange(target.Feed.CapabilityLists.CloneElements()); AppList.Entries.Add(appEntry); WriteAppDir(appEntry); return(appEntry); }