internal EditingContext GetNewOrExistingContext(Uri itemUri) { EditingContext itemContext = null; // creating a new context is an expensive operation, so optimize for the case where it exists var item = _package.ModelManager.GetArtifact(itemUri); if (item != null) { _mapArtifactToEditingContext.TryGetValue(item, out itemContext); } // there isn't one, so call the path that will create it if (itemContext == null) { item = GetNewOrExistingArtifact(itemUri); if (itemUri != null && item != null && !_mapArtifactToEditingContext.TryGetValue(item, out itemContext)) { var service = new EFArtifactService(item); var editingContext = new EditingContext(); editingContext.SetEFArtifactService(service); itemContext = editingContext; _mapArtifactToEditingContext[item] = itemContext; } } return(itemContext); }
public static EditingContext GetEditingContext(this EFArtifact artifact) { Debug.Assert(artifact != null, "artifact != null"); var service = new EFArtifactService(artifact); var editingContext = new EditingContext(); editingContext.SetEFArtifactService(service); return(editingContext); }
private static FeatureState IsFeatureEnabledForArtifact(Version schemaVersion, Func <EFArtifact, FeatureState> funcToTest) { using (var editingContext = new EditingContext()) { var modelManager = new Mock <ModelManager>(null, null).Object; var modelProvider = new Mock <XmlModelProvider>().Object; var entityDesignArtifactMock = new Mock <EntityDesignArtifact>(modelManager, new Uri("urn:dummy"), modelProvider); editingContext.SetEFArtifactService(new EFArtifactService(entityDesignArtifactMock.Object)); entityDesignArtifactMock.Setup(a => a.SchemaVersion).Returns(schemaVersion); entityDesignArtifactMock.Setup(a => a.EditingContext).Returns(editingContext); return(funcToTest(entityDesignArtifactMock.Object)); } }