public void ThenICheckThatBatchesWithStatusHadSamlesOnlyWithTestOrOnlyWith(string status, string testName1, string testName2)
        {
            // проверяем, что в каждом бэтче только один тест
            BDMainPage bDMain = new BDMainPage();

            bDMain.OpenBatches();
            IsTrue(bDMain.AssertOpenBatches(), "Что-то пошло не так. не найден заголовок Бэтчи");
            BDBatchesPage bDBatches = new BDBatchesPage();

            bDBatches.WaitSearchButtonClickability();
            // проходим по всем бэтчам в статусе Собран и проверяем, что внутри есть только один из тестов
            int counter = 1;

            foreach (Object i in bDBatches.ListOfBatchesWithThisStatus(status))
            {
                bDBatches.OpenContentOfBatchForAnyStatus(status, counter);
                CommonSteps common = new CommonSteps();
                SecondTab = common.ThenTheTabWithTitleShouldBeOpened("BatchDropper");
                BDContentOfBatchPage bDContent = new BDContentOfBatchPage(SecondTab);
                IsFalse(bDContent.AssertFindSampleWithThisName(testName1)
                        & bDContent.AssertFindSampleWithThisName(testName2), "Что то пошло не так, в бэтче есть тесты с разными программами амплификации");
                Debug.WriteLine($"Проверка бэтча {counter} завершена");
                ++counter;
                bDMain.OpenBatches();
            }
        }
        public void ThenICheckCountOfBatches()
        {
            BDMainPage bDMainPage = new BDMainPage();

            bDMainPage.OpenBatches();
            IsTrue(bDMainPage.AssertOpenBatches(), "Не найден заголовок на странице");
            BDBatchesPage bDBatchesPage = new BDBatchesPage();

            IsTrue(bDBatchesPage.TheTableIsEmpty(), "В таблице есть бэтчи");
        }
        public void ThenICheckThatChild_BatchWasCreated()
        {
            BDMainPage bDMain = new BDMainPage();

            bDMain.OpenBatches();
            IsTrue(bDMain.AssertOpenBatches(), "Что-то пошло не так. не найден заголовок Бэтчи");
            // проверяем, что появился дочерний бэтч
            MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSDbBatchDropperStab);
            string        command   = $@"Select [Id] FROM [BatchDropperStab].[dbo].[Batches] Where Status = 31 and name like 'C-%'";
            var           BatchId   = _msBDConnector.QueryExecutorScalar(command);
            BDBatchesPage bDBatches = new BDBatchesPage();

            IsTrue(bDBatches.AssertChildBatch(BatchId), "Ошибка! Дочерний бэтч не создан!");
        }
        public void ThenGoToTheBathesPageToCheckForThePresenceOfBathesInTheStatus(int p0, string p1)
        {
            // проверяем, что сформировано 3 бэтча в статусе Сформирован
            BDMainPage bDMain = new BDMainPage();

            bDMain.OpenBatches();
            IsTrue(bDMain.AssertOpenBatches(), "Что-то пошло не так. не найден заголовок Бэтчи");
            BDBatchesPage bDBatches = new BDBatchesPage();

            bDBatches.WaitSearchButtonClickability();
            int countOfListOfBatchesWithThisStatus = bDBatches.ListOfBatchesWithThisStatus(p1).Count;

            if (countOfListOfBatchesWithThisStatus == p0)
            {
                Debug.WriteLine($"ОК. На странице Бэтчи отображаются {p0} бэтчей в статусе {p1}");
            }
            else
            {
                Debug.WriteLine($"Что-то пошло не так! Выведено {countOfListOfBatchesWithThisStatus} в статусе {p1}. Должно быть {p0}");
            }
        }
        public void WhenIGoToBathesPageICheckThatTheTabletConsistOfSamplesAndBatchHasStatus(int countSamples, string batchStatus)
        {
            BDMainPage bDMain = new BDMainPage();

            bDMain.OpenBatches();
            IsTrue(bDMain.AssertOpenBatches(), "Что-то пошло не так. не найден заголовок Бэтчи");
            //Проверить, что бэтч в статусе Собран
            MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSDbBatchDropperStab);
            string        command   = $@"Select [Id] FROM [BatchDropperStab].[dbo].[Batches] Where Status = 10 and name like 'P-%'";
            var           BatchId   = _msBDConnector.QueryExecutorScalar(command);
            BDBatchesPage bDBatches = new BDBatchesPage();

            if (bDBatches.BatchWithIdAndStatus(BatchId, batchStatus).Exists())
            {
                Debug.WriteLine($"ОК. Бэтч {BatchId} в статусе {batchStatus}");
            }
            else
            {
                throw new NullReferenceException($"Ошибочка вышла! Не найден бэтч '{BatchId}' в статусе '{batchStatus}'");
            }
            //проверить, что в содержимом бэтча под образцы занимают N колитчество лунок
            bDBatches.ClickToShowContentBatchWithIdButton(BatchId);
            CommonSteps common = new CommonSteps();

            SecondTab = common.ThenTheTabWithTitleShouldBeOpened("BatchDropper");
            BDContentOfBatchPage bDContent = new BDContentOfBatchPage(SecondTab);
            int countSamplesInBatch        = bDContent.ListOfDrippingSamples.Count;

            System.Threading.Thread.Sleep(2000);
            if (countSamplesInBatch == countSamples)
            {
                Debug.WriteLine($"ОК. Пробами занято {countSamples} лунок в бэтче");
            }
            else
            {
                throw new NullReferenceException($"Ошибочка вышла! В бэтче {BatchId} пробами занято {countSamplesInBatch} лунок вместо '{countSamples}'!");
            }
        }
        public void ThenIGoToTheBatchesPageToCheckThatFromLocationIs(string location, string condition)
        {
            BDMainPage bDMain = new BDMainPage();

            bDMain.OpenBatches();
            IsTrue(bDMain.AssertOpenBatches(), "Что-то пошло не так. не найден заголовок Бэтчи");
            //проверить, что отображается бэтч только из своей локации
            MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSDbBatchDropperStab);
            string        command   = $@"use BatchDropperStab
            SELECT TOP (1) b.id FROM batches  b with (nolock)
            inner join Locations l on l.id=b.LocationId
            WHERE l.name = '{location}'";
            var           BatchId   = _msBDConnector.QueryExecutorScalar(command);
            BDBatchesPage bDBatches = new BDBatchesPage();

            if (condition == "exists")
            {
                IsTrue(bDBatches.AssertBatchWithId(BatchId), $"Что то пошло не так - не находит бэтч {BatchId} в локации {location}");
            }
            else
            {
                IsFalse(bDBatches.AssertBatchWithId(BatchId), $"Что то пошло не так - найден бэтч {BatchId} в локации {location}");
            }
        }