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 CreateADataSourceMapping_VarYr()

        {
            HomePage homepage = new HomePage();
            SelectedSpecificationDataSourcePage selectedspecificationdatasourcepage = new SelectedSpecificationDataSourcePage();
            SelectSourceDatasetsPage            selectsourcedatasetspage            = new SelectSourceDatasetsPage();
            MapDataSourcesToDatasetsPage        mapdatasourcestodatasetpage         = new MapDataSourcesToDatasetsPage();

            homepage.Header.Click();
            Thread.Sleep(2000);

            NavigateTo.MapDataSourcesToDatasetsPage();
            Thread.Sleep(2000);

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

            var    specYear   = ScenarioContext.Current["SpecificationYear"];
            string specAcYear = specYear.ToString();

            var selectYear    = mapdatasourcestodatasetpage.mapDataSourcesSpecficationYearDropDown;
            var selectElement = new SelectElement(selectYear);

            selectElement.SelectByValue(specAcYear);
            Thread.Sleep(2000);

            mapdatasourcestodatasetpage.mapDataSourcesSearchTermField.SendKeys(specCreatedID);
            mapdatasourcestodatasetpage.mapDataSourcesSearchTermButton.Click();
            Thread.Sleep(4000);

            Actions.MapDataSourcesToDatasetsForSpecification();
            Thread.Sleep(2000);
            selectedspecificationdatasourcepage.specificationDataSourceCount.Should().NotBeNull();

            selectedspecificationdatasourcepage.specificationDataSourceMissing.Click();
            Thread.Sleep(2000);
            selectsourcedatasetspage.selectSourceDatasetSaveButton.Should().NotBeNull();

            Actions.SelectSourceDatasetsRadioOption();
            Thread.Sleep(2000);
            Actions.SelectSourceDatasetVersionRadioOption();
            Thread.Sleep(2000);
            selectsourcedatasetspage.selectSourceDatasetSaveButton.Click();
            Thread.Sleep(2000);

            selectedspecificationdatasourcepage.specificationDataSourceMissing.Should().NotBeNull();
            selectedspecificationdatasourcepage.specificationDataSourceAddedAlert.Displayed.Should().BeTrue();
            Thread.Sleep(5000);
        }
        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");
            }
        }