Models information about an implementation in an IStore with a known owning interface for display in a UI.
Inheritance: ImplementationNode
        private void Add(ManifestDigest digest)
        {
            try
            {
                Feed feed;
                var  implementation = _feeds.GetImplementation(digest, out feed);

                ImplementationNode implementationNode;
                if (implementation == null)
                {
                    implementationNode = new OrphanedImplementationNode(digest, _store);
                }
                else
                {
                    implementationNode = new OwnedImplementationNode(digest, implementation, new FeedNode(feed, _feedCache), _store);
                }

                TotalSize += implementationNode.Size;
                Add(implementationNode);
            }
            #region Error handling
            catch (FormatException ex)
            {
                Log.Error(string.Format("Problem processing the manifest file for '{0}'.", digest));
                Log.Error(ex);
            }
            catch (IOException ex)
            {
                Log.Error(string.Format("Problem processing '{0}'.", digest));
                Log.Error(ex);
            }
            catch (UnauthorizedAccessException ex)
            {
                Log.Error(string.Format("Problem processing '{0}'.", digest));
                Log.Error(ex);
            }
            #endregion
        }
        private void Add(ManifestDigest digest)
        {
            try
            {
                Feed feed;
                var implementation = _feeds.GetImplementation(digest, out feed);

                ImplementationNode implementationNode;
                if (implementation == null) implementationNode = new OrphanedImplementationNode(digest, _store);
                else implementationNode = new OwnedImplementationNode(digest, implementation, new FeedNode(feed, _feedCache), _store);

                TotalSize += implementationNode.Size;
                Add(implementationNode);
            }
                #region Error handling
            catch (FormatException ex)
            {
                Log.Error(string.Format("Problem processing the manifest file for '{0}'.", digest));
                Log.Error(ex);
            }
            catch (IOException ex)
            {
                Log.Error(string.Format("Problem processing '{0}'.", digest));
                Log.Error(ex);
            }
            catch (UnauthorizedAccessException ex)
            {
                Log.Error(string.Format("Problem processing '{0}'.", digest));
                Log.Error(ex);
            }
            #endregion
        }