private void AddDescriptorByRelationship(QueryMapDescriptor descriptor) { if (descriptor.RelationshipUid.HasValue) { Dictionary <Guid, List <QueryMapDescriptor> > descriptorsForRelationshipByDescriptorType; if (DescriptorsByRelationship.ContainsKey(descriptor.RelationshipUid.Value)) { descriptorsForRelationshipByDescriptorType = DescriptorsByRelationship[descriptor.RelationshipUid.Value]; } else { descriptorsForRelationshipByDescriptorType = new Dictionary <Guid, List <QueryMapDescriptor> >(); DescriptorsByRelationship[descriptor.RelationshipUid.Value] = descriptorsForRelationshipByDescriptorType; } List <QueryMapDescriptor> descriptorsForRelationship; if (descriptorsForRelationshipByDescriptorType.ContainsKey(descriptor.DescriptorTypeUid.Value)) { descriptorsForRelationship = descriptorsForRelationshipByDescriptorType[descriptor.DescriptorTypeUid.Value]; } else { descriptorsForRelationship = new List <QueryMapDescriptor>(); descriptorsForRelationshipByDescriptorType[descriptor.DescriptorTypeUid.Value] = descriptorsForRelationship; } descriptorsForRelationship.Add(descriptor); } }
public Dictionary <Guid, QueryMapDescriptor> GetNodes(Guid relationshipId) { Dictionary <Guid, QueryMapDescriptor> descriptors = new Dictionary <Guid, QueryMapDescriptor>(); if (DescriptorsByRelationship.ContainsKey(relationshipId)) { foreach (KeyValuePair <Guid, List <QueryMapDescriptor> > nodeDescriptorPairs in DescriptorsByRelationship[relationshipId]) { descriptors[nodeDescriptorPairs.Key] = nodeDescriptorPairs.Value.FirstOrDefault(); } } return(descriptors); }
public QueryMapNode GetNode(Guid relationshipId, Guid descriptorType) { if (DescriptorsByRelationship.ContainsKey(relationshipId)) { if (DescriptorsByRelationship[relationshipId].ContainsKey(descriptorType)) { foreach (var descriptor in DescriptorsByRelationship[relationshipId][descriptorType]) { if (Nodes.ContainsKey(descriptor.NodeUid.Value)) { return(Nodes[descriptor.NodeUid.Value]); } } } } return(null); }