public static void MapDataSourcesToDatasetsPage()
        {
            HomePage          homepage          = new HomePage();
            ManageTheDataPage managethedatapage = new ManageTheDataPage();

            homepage.ManagetheData.Click();
            managethedatapage.specifyDataSetRelationshipLink.Click();
        }
        public static void ManageDatasetsPage()
        {
            HomePage          homepage          = new HomePage();
            ManageTheDataPage managethedatapage = new ManageTheDataPage();

            homepage.ManagetheData.Click();
            managethedatapage.manageDataSetsLink.Click();
        }
        public static void DownloadDataSchemasPage()
        {
            HomePage          homepage          = new HomePage();
            ManageTheDataPage managethedatapage = new ManageTheDataPage();

            homepage.ManagetheData.Click();
            managethedatapage.downloadDataSchemasLink.Click();
            Thread.Sleep(2000);
        }
        public static void SpecificationRelationshipsPage()
        {
            HomePage                     homepage                     = new HomePage();
            ManageTheDataPage            managethedatapage            = new ManageTheDataPage();
            MapDataSourcesToDatasetsPage mapdatasourcestodatasetspage = new MapDataSourcesToDatasetsPage();

            homepage.ManagetheData.Click();
            managethedatapage.specifyDataSetRelationshipLink.Click();
            Thread.Sleep(2000);
            mapdatasourcestodatasetspage.mapDataSourcesFirstSpecificationName.Click();
            Thread.Sleep(2000);
            Driver._driver.FindElement(By.LinkText("Map data source file")).Click();
            Thread.Sleep(2000);
        }
        public static void DataSourceHistorygage()
        {
            HomePage           homepage          = new HomePage();
            ManageTheDataPage  managethedatapage = new ManageTheDataPage();
            ManageDatasetsPage managedatasetpage = new ManageDatasetsPage();
            DatasetHistoryPage datahistorypage   = new DatasetHistoryPage();

            homepage.ManagetheData.Click();
            managethedatapage.manageDataSetsLink.Click();
            managedatasetpage.firstDatasourceExpandOption.Click();
            Thread.Sleep(2000);
            IWebElement viewDataSourceVersionLink = managedatasetpage.viewDataSourceHistoryLink;

            viewDataSourceVersionLink.Click();
            Thread.Sleep(2000);
        }
        public static void SpecificationDataRelationshipsExistPage()
        {
            HomePage                     homepage                     = new HomePage();
            ManageTheDataPage            managethedatapage            = new ManageTheDataPage();
            MapDataSourcesToDatasetsPage mapdatasourcestodatasetspage = new MapDataSourcesToDatasetsPage();

            homepage.ManagetheData.Click();
            managethedatapage.specifyDataSetRelationshipLink.Click();
            Thread.Sleep(5000);

            var    specName      = ScenarioContext.Current["SpecificationName"];
            string specCreated   = specName.ToString();
            string specCreatedID = specName.ToString().Replace("Test Spec Name ", "");

            mapdatasourcestodatasetspage.mapDataSourcesSearchTermField.SendKeys(specCreatedID);
            mapdatasourcestodatasetspage.mapDataSourcesSearchTermButton.Click();
            Thread.Sleep(2000);

            var         containerElements = Driver._driver.FindElements(By.CssSelector("#dynamic-results-container .specs-relationship-searchresult-container-item"));
            IWebElement firstAnchorLink   = null;

            foreach (var element in containerElements)
            {
                var pElement = element.FindElement(By.CssSelector("p"));
                if (pElement != null)
                {
                    if (Regex.IsMatch(pElement.Text, "\\d data source mapped to dataset"))
                    {
                        var anchorLink = element.FindElement(By.CssSelector("h2 > a"));
                        if (anchorLink != null)
                        {
                            firstAnchorLink = anchorLink;
                            break;
                        }
                    }
                }
            }
            Thread.Sleep(1000);
            if (firstAnchorLink != null)
            {
                firstAnchorLink.Click();
            }
            else
            {
                firstAnchorLink.Should().NotBeNull("unable to find an item with relationships");
            }
        }
        public static void SpecificationDataNoRelationshipsPage()
        {
            HomePage                     homepage                     = new HomePage();
            ManageTheDataPage            managethedatapage            = new ManageTheDataPage();
            MapDataSourcesToDatasetsPage mapdatasourcestodatasetspage = new MapDataSourcesToDatasetsPage();

            homepage.ManagetheData.Click();
            managethedatapage.specifyDataSetRelationshipLink.Click();
            var         containerElements = Driver._driver.FindElements(By.CssSelector("#dynamic-results-container .specs-relationship-searchresult-container-item"));
            IWebElement firstAnchorLink   = null;

            foreach (var element in containerElements)
            {
                var pElement = element.FindElement(By.CssSelector("p"));
                if (pElement != null)
                {
                    if (pElement.Text.Contains("No data sources mapped to datasets"))
                    {
                        var anchorLink = element.FindElement(By.CssSelector("h2 > a"));
                        if (anchorLink != null)
                        {
                            firstAnchorLink = anchorLink;
                            break;
                        }
                    }
                }
            }
            Thread.Sleep(1000);
            if (firstAnchorLink != null)
            {
                firstAnchorLink.Click();
            }
            else
            {
                firstAnchorLink.Should().NotBeNull("unable to find an item with no relationships");
            }
        }