예제 #1
0
        /// <summary>
        /// Builds the metadata-repository from the Database.
        /// </summary>
        /// <returns>True if the repository is built, false if the operation failed.</returns>
        public static bool BuildMetadataRepository()
        {
            if (!IsOpen())
                return false;

            MetaData = GetMetaData(SqlCreator.FactTableName, SqlCreator.EventTableName);

            return MetaData != null;
        }
        public void MetaDataRepositoryConstructorTest()
        {
            MetaDataRepository target = new MetaDataRepository("name");

            Assert.IsNotNull(target.ListOfFactDimensions);
            Assert.IsNotNull(target.ListOfEventDimensions);
            Assert.IsNotNull(target.ListOfCaseTableColumnNames);
            Assert.IsNotNull(target.ListOfEventsTableColumnNames);
        }
        public static void MyClassInitialize(TestContext testContext)
        {
            string testDbPath = AppDomain.CurrentDomain.BaseDirectory + @"\Files\test.sqlite.db";

            // To enable tests in a virtual machine (change the letter accordingly)
            if (!Char.IsLetter(testDbPath.First()))
                testDbPath = "Z:" + testDbPath.Substring(10);

            ConParams = new ConnectionParameters("SQLite", "SQLite Connection", "", testDbPath);

            String dbDatabaseWithoutPathName = ConParams.Database.Substring(ConParams.Database.LastIndexOf(("\\"), StringComparison.Ordinal) + 1);
            Path = AppDomain.CurrentDomain.BaseDirectory + @"\Metadata_" + dbDatabaseWithoutPathName + "@" + ConParams.Host + ".xml";

            DBWorker.ConfigureDBConnection(ConParams);
            DBWorker.OpenConnection();

            DBWorker.BuildMetadataRepository();
            XMLHelper.SerializeObjectToXML(Path, DBWorker.MetaData);

            XmlMetadata = XMLHelper.DeserializeObjectFromXML<MetaDataRepository>(Path);
        }
        /// <summary>
        /// Method to get a table containing all dimensions.
        /// </summary>
        /// <param name="factTableName"></param>
        /// <param name="eventTableName"></param>
        /// <returns>FactTable containing the dimensions</returns>
        /// <author>Jannik Arndt, Bernd Nottbeck</author>
        public virtual MetaDataRepository GetMetaData(string factTableName, string eventTableName)
        {
            MetaDataRepository table = new MetaDataRepository(factTableName);

            table.ListOfCaseTableColumnNames.AddRange(GetColumnNamesOfTable(DBWorker.SqlCreator.CaseTableName));
            table.ListOfEventsTableColumnNames.AddRange(GetColumnNamesOfTable(DBWorker.SqlCreator.EventTableName));

            //Add dimensions from table fact
            table.ListOfFactDimensions.Add(new Dimension("--no selection--", isEmptyDimension: true));
            table.ListOfFactDimensions.AddRange(GetDimensionsOf(factTableName));

            //Add dimensions from table event
            table.ListOfEventDimensions.AddRange(GetDimensionsOf(eventTableName));

            //Add logical all level for each dimension
            AddAllLevel(table.ListOfFactDimensions);
            AddAllLevel(table.ListOfEventDimensions);
            return table;
        }