コード例 #1
0
        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);
        }
コード例 #2
0
        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}'");
        }
コード例 #3
0
        public void CanUnqualifyName()
        {
            string unqualified;

            Assert.IsTrue(ModelElementNameUtils.TryUnqualifyName("SOMEDB.DBO.SOMETABLE",
                                                                 out unqualified));
            Assert.AreEqual("SOMETABLE", unqualified);
        }
コード例 #4
0
        public void CanUnqualifyNameWithLeadingSeparator()
        {
            string unqualified;

            Assert.IsTrue(ModelElementNameUtils.TryUnqualifyName(".SOMETABLE",
                                                                 out unqualified));
            Assert.AreEqual("SOMETABLE", unqualified);
        }
コード例 #5
0
        public void CantUnqualifyUnqualifiedName()
        {
            string unqualified;

            Assert.IsFalse(ModelElementNameUtils.TryUnqualifyName("SOMETABLE",
                                                                  out unqualified));
            Assert.AreEqual("SOMETABLE", unqualified);
        }
コード例 #6
0
        public void CanUnqualifySingleCharDatasetName()
        {
            string unqualified;

            Assert.IsTrue(ModelElementNameUtils.TryUnqualifyName("SOMEDB.DBO.T",
                                                                 out unqualified));
            Assert.AreEqual("T", unqualified);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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}'");
        }