Exemplo n.º 1
0
        /// <summary>
        /// for the given dependency, gets its tree, sorted from least dependent to most
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public List <NamedDependencyWithObjectInstance> GetDependencyTree(NamedDependencyWithObjectInstance item)
        {
            var castedList = this.Items.Cast <NamedDependency>().ToList();
            var list       = NamedDependency.GetSortedDependencies(castedList, item);

            return(list.Cast <NamedDependencyWithObjectInstance>().ToList());
        }
Exemplo n.º 2
0
        /// <summary>
        /// adds a dependency item. will not add if item with the same "Self" already exists.
        /// </summary>
        /// <param name="instance"></param>
        /// <param name="dependency"></param>
        public bool AddDependency(object instance, NamedDependency dependency)
        {
            NamedDependencyWithObjectInstance item = new NamedDependencyWithObjectInstance(instance, dependency);

            lock (this._stateLock)
            {
                if (!this.Items.Exists(x => x.Self == item.Self))
                {
                    this.Items.Add(item);
                    return(true);
                }
            }
            return(false);
        }