private static string GetModelElementNameFromStoredName( [NotNull] string modelElementName, [NotNull] Model model) { if (!ModelElementNameUtils.IsQualifiedName(modelElementName) && model.ElementNamesAreQualified) { IWorkspace workspace = model.GetMasterDatabaseWorkspace(); if (workspace == null) { return(modelElementName); } return(DatasetUtils.QualifyTableName(workspace, model.DefaultDatabaseName, model.DefaultDatabaseSchemaOwner, modelElementName)); } if (!model.ElementNamesAreQualified) { string unqualifiedName; if (ModelElementNameUtils.TryUnqualifyName(modelElementName, out unqualifiedName)) { return(unqualifiedName); } } return(modelElementName); }
public static Dataset GetDatasetFromStoredName([NotNull] string storedDatasetName, [NotNull] Model model, bool ignoreUnknownDataset) { Assert.ArgumentNotNullOrEmpty(storedDatasetName, nameof(storedDatasetName)); Assert.ArgumentNotNull(model, nameof(model)); string searchName = GetModelElementNameFromStoredName(storedDatasetName, model); Dataset dataset = model.GetDatasetByModelName(searchName); if (dataset != null) { return(dataset); } string unqualifiedName; if (ModelElementNameUtils.TryUnqualifyName(storedDatasetName, out unqualifiedName)) { dataset = model.GetDatasetByModelName(unqualifiedName); if (dataset != null) { return(dataset); } } if (ignoreUnknownDataset) { return(null); } throw new ArgumentException( $"No dataset with name '{storedDatasetName}' exists in model '{model.Name}'"); }
public void CanUnqualifyName() { string unqualified; Assert.IsTrue(ModelElementNameUtils.TryUnqualifyName("SOMEDB.DBO.SOMETABLE", out unqualified)); Assert.AreEqual("SOMETABLE", unqualified); }
public void CanUnqualifyNameWithLeadingSeparator() { string unqualified; Assert.IsTrue(ModelElementNameUtils.TryUnqualifyName(".SOMETABLE", out unqualified)); Assert.AreEqual("SOMETABLE", unqualified); }
public void CantUnqualifyUnqualifiedName() { string unqualified; Assert.IsFalse(ModelElementNameUtils.TryUnqualifyName("SOMETABLE", out unqualified)); Assert.AreEqual("SOMETABLE", unqualified); }
public void CanUnqualifySingleCharDatasetName() { string unqualified; Assert.IsTrue(ModelElementNameUtils.TryUnqualifyName("SOMEDB.DBO.T", out unqualified)); Assert.AreEqual("T", unqualified); }
public void CantUnqualifyNameWithTrailingSeparator() { string unqualified; Assert.IsFalse(ModelElementNameUtils.TryUnqualifyName("SOMETABLE.", out unqualified)); Assert.AreEqual("SOMETABLE.", unqualified); // with trailing blank: Assert.IsFalse(ModelElementNameUtils.TryUnqualifyName("SOMETABLE. ", out unqualified)); Assert.AreEqual("SOMETABLE. ", unqualified); }
public static Association GetAssociationFromStoredName( [NotNull] string storedAssociationName, [NotNull] Model model, bool ignoreUnknownAssociation) { Assert.ArgumentNotNullOrEmpty(storedAssociationName, nameof(storedAssociationName)); Assert.ArgumentNotNull(model, nameof(model)); string searchName = GetModelElementNameFromStoredName(storedAssociationName, model); Association association = model.GetAssociationByModelName(searchName); if (association != null) { return(association); } string unqualifiedName; if (ModelElementNameUtils.TryUnqualifyName(storedAssociationName, out unqualifiedName)) { association = model.GetAssociationByModelName(unqualifiedName); if (association != null) { return(association); } } if (ignoreUnknownAssociation) { return(null); } throw new ArgumentException( $"No association with name '{storedAssociationName}' exists in model '{model.Name}'"); }