public void AddLossesByUserTest(string type, string datasetDifference)
        {
            loginPage.LoginToApplication(user, "NBV87^yu");

            var menu = new MenuPage(driver);

            var datasetName = $"{DatasetUserDescription(type)} {datasetDifference}";

            menu.DataMenuLocator.ClickEx(driver);

            menu.LossesAddMenuLocator.Click();

            var lossesAddPage = new LossesAddPage(driver);

            lossesAddPage.SelectDatasetButtonLocator.Click();

            lossesAddPage.SelectDataset(datasetName);

            Assert.AreEqual(lossesAddPage.SelectDatasetButtonLocator.Text, datasetName);

            UploadLosses(type, "LossUser1", driver);

            wait.Until(ExpectedConditions.ElementToBeClickable(lossesAddPage.StartButtonLocator)).Click();

            wait.Until(ExpectedConditions.ElementToBeClickable(lossesAddPage.ConfirmAddRatesButtonLocator)).Click();

            Utils.WaitUntilLoadingDisappears(driver, secondtToWait: 500);

            var dataProcessingStatus = new DataProcessingStatusPage(driver);

            Utils.WaitUntilLoadingDisappears(driver);

            dataProcessingStatus.CheckRefreshRateToMinimum();

            wait.Until(ExpectedConditions.InvisibilityOfElementWithText(By.XPath($"//*[@id='admin-table-office']//tr[1]/td[5]"), "In queue"));

            wait.Until(ExpectedConditions.InvisibilityOfElementWithText(By.XPath($"//*[@id='admin-table-office']//tr[1]/td[5]"), "In progress"));

            Utils.WaitBeforeAssert(driver);

            Assert.AreEqual("Completed successfully", dataProcessingStatus.UserStatus[0].Text, "Status is not Completed successfully");
        }
        public void AddLossesTest(string lossName, string fileFormat, string delimiter, bool isTypeShared = true)
        {
            var menu = new MenuPage(driver);

            var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10000));

            menu.DataMenuLocator.ClickEx(driver);

            menu.LossesAddMenuLocator.Click();

            var lossesAddPage = new LossesAddPage(driver);

            lossesAddPage.SelectDatasetButtonLocator.Click();

            lossesAddPage.SelectDataset(datasetDescription);

            Assert.AreEqual(lossesAddPage.SelectDatasetButtonLocator.Text, datasetDescription);

            UploadLosses(lossName, fileFormat, delimiter, driver);

            if (!isTypeShared)
            {
                lossesAddPage.CarrierTypeButtonLocator.ClickEx(driver);
                lossesAddPage.ClientTypeLocator.Click();
                Thread.Sleep(500);

                lossesAddPage.SelectClient("Luxoft");
            }

            if (lossName.Contains("AdminLuxoftExport"))
            {
                lossesAddPage.SelectSharedClient("Luxoft", true);
            }

            if (lossName.Contains("AdminSharedLuxoft"))
            {
                lossesAddPage.SelectSharedClient("Luxoft");
            }

            wait.Until(ExpectedConditions.ElementToBeClickable(lossesAddPage.StartButtonLocator));

            lossesAddPage.ScrollToStartButton();

            lossesAddPage.StartButtonLocator.Click();

            wait.Until(ExpectedConditions.ElementToBeClickable(lossesAddPage.ConfirmAddRatesButtonLocator)).Click();

            Utils.WaitUntilLoadingDisappears(driver, secondtToWait: 500);

            var dataProcessingStatus = new DataProcessingStatusPage(driver);

            Utils.WaitUntilLoadingDisappears(driver);

            dataProcessingStatus.CheckRefreshRateToMinimum();

            int row = dataProcessingStatus.DatasetRow(datasetDescription);

            wait.Until(ExpectedConditions.InvisibilityOfElementWithText(By.XPath($"//*[@id='admin-table-office']//tr[{row + 1}]/td[6]"), "In queue"));

            wait.Until(ExpectedConditions.InvisibilityOfElementWithText(By.XPath($"//*[@id='admin-table-office']//tr[{row + 1}]/td[6]"), "In progress"));

            Assert.AreEqual("Completed successfully", dataProcessingStatus.Status[row].Text, "Status is not Completed successfully");
        }
        public void AddLossesByAdminTest(string type, string datasetDifference, string lossName, bool isTypeShared, bool isLuxoftLoss)
        {
            loginPage.LoginToApplication();

            var menu = new MenuPage(driver);

            var datasetName = $"{DatasetUserDescription(type)} {datasetDifference}";

            menu.DataMenuLocator.ClickEx(driver);

            menu.LossesAddMenuLocator.Click();

            var lossesAddPage = new LossesAddPage(driver);

            lossesAddPage.SelectDatasetButtonLocator.Click();

            lossesAddPage.SelectDataset(datasetName);

            Assert.AreEqual(lossesAddPage.SelectDatasetButtonLocator.Text, datasetName);

            UploadLosses(type, lossName, driver);

            if (!isTypeShared)
            {
                lossesAddPage.CarrierTypeButtonLocator.ClickEx(driver);
                lossesAddPage.ClientTypeLocator.Click();
                Thread.Sleep(500);
                if (isLuxoftLoss)
                {
                    lossesAddPage.SelectClient("Luxoft");
                }
                else
                {
                    lossesAddPage.SelectClient("Test");
                }
            }

            wait.Until(ExpectedConditions.ElementToBeClickable(lossesAddPage.StartButtonLocator));

            lossesAddPage.ScrollToStartButton();

            lossesAddPage.StartButtonLocator.Click();

            wait.Until(ExpectedConditions.ElementToBeClickable(lossesAddPage.ConfirmAddRatesButtonLocator)).Click();

            Utils.WaitUntilLoadingDisappears(driver, secondtToWait: 500);

            var dataProcessingStatus = new DataProcessingStatusPage(driver);

            Utils.WaitUntilLoadingDisappears(driver);

            dataProcessingStatus.CheckRefreshRateToMinimum();

            wait.Until(ExpectedConditions.InvisibilityOfElementWithText(By.XPath($"//*[@id='admin-table-office']//tr[1]/td[6]"), "In queue"));

            wait.Until(ExpectedConditions.InvisibilityOfElementWithText(By.XPath($"//*[@id='admin-table-office']//tr[1]/td[6]"), "In progress"));

            Utils.WaitBeforeAssert(driver);

            Assert.AreEqual("Completed successfully", dataProcessingStatus.Status[0].Text, "Status is not Completed successfully");
        }