Invert.Core.GraphDesigner.DiagramViewModel.AddGraphItems C# (CSharp) Method

AddGraphItems() public method

public AddGraphItems ( IEnumerable items ) : IEnumerator
items IEnumerable
return IEnumerator
        public IEnumerator AddGraphItems(IEnumerable<IDiagramNode> items)
        {
            var dictionary = new Dictionary<string, IFilterItem>();
            foreach (var item in GraphData.CurrentFilter.FilterItems)
            {
                if (dictionary.ContainsKey(item.NodeId))
                {
                    item.Repository.Remove(item);
                    continue;
                }
                dictionary.Add(item.NodeId, item);
            }

            FilterItems = dictionary;



            IsLoading = true;
            var connectors = new List<ConnectorViewModel>();
            // var time = DateTime.Now;
            foreach (var item in items)
            {
                
                // Get the ViewModel for the data
                //InvertApplication.Log("B-A" + DateTime.Now.Subtract(time).TotalSeconds.ToString());
                var mapping = InvertApplication.Container.RelationshipMappings[item.GetType(), typeof(ViewModel)];
                if (mapping == null) continue;
                var vm = Activator.CreateInstance(mapping, item, this) as GraphItemViewModel; 
                //var vm = 
                //    InvertApplication.Container.ResolveRelation<ViewModel>(item.GetType(), item, this) as
                //        GraphItemViewModel;
                //InvertApplication.Log("B-B" + DateTime.Now.Subtract(time).TotalSeconds.ToString());
                if (vm == null)
                {
                    if (InvertGraphEditor.Platform.MessageBox("Node Error", string.Format("Couldn't find view-model for {0} would you like to remove this item?", item.GetType()), "Yes", "No"))
                    {
                        CurrentRepository.Remove(item);
                    }
                    continue;
                }
                vm.DiagramViewModel = this;
                GraphItems.Add(vm);
                //// Clear the connections on the view-model
                //vm.Connectors.Clear();
                //vm.GetConnectors(vm.Connectors);
                //connectors.AddRange(vm.Connectors);
                yield return new TaskProgress(string.Format("Loading..."), 95f);
            } 
            IsLoading = false;
            RefreshConnectors();
            //AddConnectors(connectors);
            InvertApplication.SignalEvent<IGraphLoaded>(_=>_.GraphLoaded());
            yield break;
        }
        public InspectorViewModel InspectorViewModel