예제 #1
0
        /// <summary>
        /// Adds data to SubGraph and data
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public virtual ICollection <TItem> Add(IEnumerable <TItem> elements)
        {
            var worker = new WalkerWorker1 <TItem, TEdge> (this.Sink);

            foreach (var item in elements)
            {
                if (item is TEdge)
                {
                    if (!Source.Contains((TEdge)item))
                    {
                        Source.Add((TEdge)item);
                    }
                }
                else if (!Source.Contains(item))
                {
                    Source.Add(item);
                }

                worker.Add(item);
            }

            CommitAdd(worker);

            return(worker.Affected);
        }
예제 #2
0
        /// <summary>
        /// Adds data to SubGraph and data
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public virtual ICollection <TItem> Add(TItem item)
        {
            var worker = new WalkerWorker1 <TItem, TEdge> (this.Sink);

            if (item is TEdge)
            {
                if (!Source.Contains((TEdge)item))
                {
                    Source.Add((TEdge)item);
                }
            }
            else if (!Source.Contains(item))
            {
                Source.Add(item);
            }

            worker.Add(item);

            CommitAdd(worker);

            return(worker.Affected);
        }