private bool VerifyGraphSyncData(IEnumerable <NodeModel> nodes) { GraphSyncData data = syncDataManager.GetSyncData(); syncDataManager.ResetStates(); var reExecuteNodesIds = new HashSet <Guid>( nodes.Where(n => n.ForceReExecuteOfNode) .Select(n => n.GUID)); if (reExecuteNodesIds.Any() && data.ModifiedSubtrees != null) { for (int i = 0; i < data.ModifiedSubtrees.Count; ++i) { var st = data.ModifiedSubtrees[i]; if (reExecuteNodesIds.Contains(st.GUID)) { var newSt = new Subtree(st.AstNodes, st.GUID) { ForceExecution = true }; data.ModifiedSubtrees[i] = newSt; } } } if ((data.AddedSubtrees != null && data.AddedSubtrees.Count > 0) || (data.ModifiedSubtrees != null && data.ModifiedSubtrees.Count > 0) || (data.DeletedSubtrees != null && data.DeletedSubtrees.Count > 0)) { lock (graphSyncDataQueue) { graphSyncDataQueue.Enqueue(data); } return(true); } return(false); }
private bool VerifyGraphSyncData() { GraphSyncData data = syncDataManager.GetSyncData(); syncDataManager.ResetStates(); var reExecuteNodesIds = dynamoModel.HomeSpace.Nodes .Where(n => n.ForceReExecuteOfNode) .Select(n => n.GUID); if (reExecuteNodesIds.Any() && data.ModifiedSubtrees != null) { for (int i = 0; i < data.ModifiedSubtrees.Count; ++i) { var st = data.ModifiedSubtrees[i]; if (reExecuteNodesIds.Contains(st.GUID)) { Subtree newSt = new Subtree(st.AstNodes, st.GUID); newSt.ForceExecution = true; data.ModifiedSubtrees[i] = newSt; } } } if ((data.AddedSubtrees != null && data.AddedSubtrees.Count > 0) || (data.ModifiedSubtrees != null && data.ModifiedSubtrees.Count > 0) || (data.DeletedSubtrees != null && data.DeletedSubtrees.Count > 0)) { lock (graphSyncDataQueue) { graphSyncDataQueue.Enqueue(data); } return(true); } return(false); }