示例#1
0
        public void ThenISeeEmptyCart()
        {
            CommonSteps common = new CommonSteps();

            SecondTab1 = common.ThenTheTabWithTitleShouldBeOpened("Edit");
            CCENCartPage cCENCartPage = new CCENCartPage(SecondTab1);

            IsTrue(cCENCartPage.AssertEmptyCart(), "Корзина не пустая");
        }
示例#2
0
        public void ThenITryToDeleteNewTerminal()
        {
            BDTerminalsPage BDTerminals = new BDTerminalsPage();

            // нажать удалить и закрыть окно подтверждения удаления
            BDTerminals.DeleteTerminalWithThisTitleButton("New Title of Autotest Terminal").Click();
            BDTerminals.ClickCloseWindowOfConfirmDeleteTerminalButton();
            if (BDTerminals.CheckNewTerminal("New Title of Autotest Terminal").Exists()
                & BDTerminals.CheckNewTerminal("New System name of Autotest Terminal").Exists())
            {
                Debug.WriteLine("ОК. Терминал не удалился");
            }
            else
            {
                Debug.WriteLine("Что-то пошло не так, терминал удалился после закрытия окна подтверждения удаления");
            }
            //нажать удалить и Отмена в окне подтверждения
            BDTerminals.DeleteTerminalWithThisTitleButton("New Title of Autotest Terminal").Click();
            BDTerminals.ClickCancelDeleteTerminalButton();
            if (BDTerminals.CheckNewTerminal("New Title of Autotest Terminal").Exists()
                & BDTerminals.CheckNewTerminal("New System name of Autotest Terminal").Exists())
            {
                Debug.WriteLine("ОК. Терминал не удалился");
            }
            else
            {
                Debug.WriteLine("Что-то пошло не так, терминал удалился после отмены подтверждения удаления");
            }
            //нажать удалить и подтвердить удаление
            BDTerminals.DeleteTerminalWithThisTitleButton("New Title of Autotest Terminal").Click();
            BDTerminals.ClickConfirmDeleteTerminalButton();
            BDTerminals.WaitAfterRefresh();
            if (BDTerminals.CheckNewTerminal("New Title of Autotest Terminal").Exists()
                & BDTerminals.CheckNewTerminal("New System name of Autotest Terminal").Exists())
            {
                Debug.WriteLine("Что-то пошло не так, терминал не удалился после подтверждения удаления");
            }
            else
            {
                Debug.WriteLine("ОК. Терминал удален");
            }
            CommonSteps commons = new CommonSteps();

            commons.RefreshPage(); // обновили страницу
            BDTerminals.WaitAfterRefresh();
            if (BDTerminals.CheckNewTerminal("New Title of Autotest Terminal").Exists()
                & BDTerminals.CheckNewTerminal("New System name of Autotest Terminal").Exists())
            {
                Debug.WriteLine("Что-то пошло не так, терминал не удалился после подтверждения удаления и обновления страницы");
            }
            else
            {
                Debug.WriteLine("ОК. Терминал удален, не отображается после обновления страницы");
            }
        }
示例#3
0
        public void ThenIOpenReverseTranscriptionWorkplaceAndStartNewBatch()
        {
            BDMainPage bDMainPage = new BDMainPage();

            bDMainPage.OpenReverseTranscriptionWorkplace();
            IsTrue(bDMainPage.AssertReverseTranscriptionWorkplace(), "Заголовок рабочего места не найден");

            MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSDbBatchDropperStab);
            string command        = $@"Select count ([Id]) FROM [BatchDropperStab].[dbo].[Batches] Where Status = 9 and name like 'RT-%'";
            var    countOfBatches = _msBDConnector.QueryExecutorScalar(command); // Сколько бэтчей со статусом "Сформирован"
            int    intCount;

            intCount = System.Convert.ToInt32(countOfBatches); // перевод количества в int

            if (intCount != 0)
            {
                for (int i = 1; i <= intCount; i++)
                {
                    Debug.WriteLine(i);
                    // иконка Взять в работу - подтвердить взять в работу
                    BDReagentsWorkplacePage bDReagentsWorkplacePage = new BDReagentsWorkplacePage();
                    bDReagentsWorkplacePage.ClickTakeToWorkButton();
                    bDReagentsWorkplacePage.ClickConfirmTakeToWorkButton();
                    CommonSteps commonSteps = new CommonSteps();
                    commonSteps.ThenThePopupWithTitleShouldBeClosed(); // закрыть окно с распечаткой
                    // скопипастить идентификатор и вставить его в поле ввода
                    bDReagentsWorkplacePage.SetTestBatchID();
                    // подтвердить ШК пользователя
                    bDReagentsWorkplacePage.SetUsercode();
                    // в поле "Личный штрих-код пользователя для следующего теста" вводить шк пользователя пока поле не станет
                    //с названием "Личный штрих-код пользователя для завершения"
                    if (!bDReagentsWorkplacePage.ConfirmUserCodeForEnding.Exists())
                    {
                        IsTrue(bDReagentsWorkplacePage.AssertThefieldIsActive(), "Поле для ввода не найдено или заблокировано");
                        bDReagentsWorkplacePage.FillOutTheReagents();
                    }
                    // ввести шк пользователя в поле "Личный штрих-код пользователя для завершения"
                    IsTrue(bDReagentsWorkplacePage.AssertConfirmUserCodeForEndingField(), "Поле для окончания ввода не найдено или заблокировано");
                    bDReagentsWorkplacePage.ConfirmUserCodeForEndingReagents();
                    // получить всплывающее сообщение. Автопереход к раскапыванию контролей
                    IsTrue(bDReagentsWorkplacePage.AssertReadyMessage(), "Сообщение о раскапанных реагентах не пришло");

                    BDTubesManualDrippingPage bDTubesManualDrippingPage = new BDTubesManualDrippingPage(); // переход от реагентов к ручному раскапыванию
                    System.Threading.Thread.Sleep(500);                                                    // костыль, но без него все сыпется
                    bDTubesManualDrippingPage.AddClipboardCopyOfBatches();                                 //раскапать бэтчи
                    bDTubesManualDrippingPage.AddClipboardCopyOfTubes();                                   // раскапать пробы
                    bDTubesManualDrippingPage.ConfurmEndOfWorkRT();                                        // подтвердить завершение раскапывания личным ШК пока есть поле для ввода

                    IsTrue(bDTubesManualDrippingPage.AssertBatchWithRTCompliteMessage(), "Сообщение о собранном бэтче не пришло");
                    commonSteps.ThenThePopupWithTitleShouldBeClosed(); // закрыть окно с распечаткой

                    IsTrue(bDReagentsWorkplacePage.AssertTableOfBatches(), "Автоматический возврат на таблицу с бэтчами не сработал");
                }
            }
        }
        public void ThenIOpenPreorderForEdit()
        {
            PreOrderJournalPage preOrderJournalPage = new PreOrderJournalPage();

            preOrderJournalPage.OpenForEdit();
            System.Threading.Thread.Sleep(2000);
            CommonSteps common = new CommonSteps();

            SecondTab = common.ThenTheTabWithTitleShouldBeOpened("Edit");
            System.Threading.Thread.Sleep(2000);
        }
示例#5
0
        public void ThenTheIndicateOfDelayedNomenclatureWillBeShown()
        {
            CommonSteps common = new CommonSteps();

            SecondTabs = common.ThenTheTabWithTitleShouldBeOpened("Edit");
            CCENNomenclaturesPage nomenclaturesPage = new CCENNomenclaturesPage(SecondTabs);

            nomenclaturesPage.AddSomeNomenctatureToCart("02-002");
            //CCENCartPage cCENCartPage = new CCENCartPage(SecondTab);
            //cCENCartPage.GoToCartTab();
            // IsTrue(cCENCartPage.AssertDelayedText(),"Нет подписи о задержке выполнения номенклатуры");
        }
        public void ThenTestsCountsWillBeCreated(int countOfMultiplexes)
        {
            BDMainPage BDMain = new BDMainPage();

            BDMain.OpenDictionaries();
            CommonSteps common = new CommonSteps();

            common.RefreshPage();
            BDDictTestPage BDDictTest = new BDDictTestPage();

            BDDictTest.CheckCountOfTests();
            IsTrue(BDDictTest.AssertCountOfFewTests(countOfMultiplexes), "Количество созданных тестов не соответствует ожидаемому.");
        }
示例#7
0
        public void ThenIOpenPreorderForEditAndDeleteAllNomenclaturesFromCart()
        {
            PreOrderJournalPage preOrderJournalPage = new PreOrderJournalPage();

            preOrderJournalPage.OpenForEdit();
            System.Threading.Thread.Sleep(2000);
            CommonSteps common = new CommonSteps();

            SecondTab = common.ThenTheTabWithTitleShouldBeOpened("Edit");
            System.Threading.Thread.Sleep(2000);
            CCENCartPage cCENCartPage = new CCENCartPage(SecondTab);

            cCENCartPage.GoToCartTab();
            cCENCartPage.DeleteAllHXIDsFromCart();
            //IsTrue(cCENCartPage.AssertEmptyCart(), "Корзина не пустая");
        }
示例#8
0
        public void ThenISetTerminalNumber(string terminal)
        {
            BDMainPage BDMain = new BDMainPage();

            BDMain.SetTerminal(terminal);
            IsTrue(BDMain.AssertTermName(), "Терминал не применился. Проверьте наличие терминала в справочниках.");
            MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSDbBatchDropperStab);
            string command = $@"select [Name] FROM [BatchDropperStab].[dbo].[Terminals] where id={terminal}";
            var    name    = _msBDConnector.QueryExecutorScalar(command);
            TerminalSettingPage TSettings = new TerminalSettingPage();

            IsTrue(TSettings.AssertLinkWitnThisTerminalName(name), $"Что-то пошло не так, терминал {terminal} c именем {name} не выбран");
            CommonSteps commons = new CommonSteps();

            commons.RefreshPage();        // обновили страницу
            TSettings.WaitAfterRefresh(); // костыль, нужно заменить неявным ожиданием
            IsTrue(TSettings.AssertLinkWitnThisTerminalName(name), $"Что-то пошло не так, терминал {terminal} c именем {name} не выбран");
        }
示例#9
0
        public void ThenIOpenPreorderForEditAndSeeValuesInTheInsuranceFields()
        {
            PreOrderJournalPage preOrderJournalPage = new PreOrderJournalPage();

            preOrderJournalPage.OpenForEdit();
            System.Threading.Thread.Sleep(2000);
            CommonSteps common = new CommonSteps();

            SecondTab = common.ThenTheTabWithTitleShouldBeOpened("Edit");
            System.Threading.Thread.Sleep(2000);
            CCENPersonalDataPage cCENPersonalDataPage = new CCENPersonalDataPage(SecondTab);

            cCENPersonalDataPage.GoToPersonalDataTab();
            System.Threading.Thread.Sleep(1000);
            IsTrue(cCENPersonalDataPage.AssertNumberOfPolicyFieldValueIsNotEmpty(), "Ошибка. Это поле пустое.");
            IsTrue(cCENPersonalDataPage.AssertDispatcherFieldValueIsNotEmpty(), "Ошибка. Это поле пустое.");
            IsTrue(cCENPersonalDataPage.AssertValidityFieldValueIsNotEmpty(), "Ошибка. Это поле пустое.");
        }
示例#10
0
        public void ThenIGoToWorkplaceAndCheckThatFieldForChoosingTerminalIsExists(string workplace)
        {
            BDMainPage BDMain = new BDMainPage();

            BDMain.OpenWorkplaceWithName(workplace);
            //ввести терминал и обновить страницу
            TerminalSettingPage TSettings = new TerminalSettingPage();

            TSettings.SetTerminalWithoutSave("1");
            CommonSteps commons = new CommonSteps();

            commons.RefreshPage();        // обновили страницу
            TSettings.WaitAfterRefresh(); // костыль, нужно заменить неявным ожиданием
            IsTrue(TSettings.AssertForChooseTerminalName(), "Что-то пошло не так, нет поля или заголовка выбора терминала");
            var teminalID = "abc";

            BDMain.SetTerminal(teminalID);
            IsTrue(TSettings.AssertWrongNameOfTerminal(teminalID), $"Что-то пошло не так, нет сообщения о том, что {teminalID} не существует");
            teminalID = "999";
            BDMain.SetTerminal(teminalID);
            IsTrue(TSettings.AssertWrongNameOfTerminal(teminalID), $"Что-то пошло не так, нет сообщения о том, что {teminalID} не существует");
        }
        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}'!");
            }
        }
示例#12
0
        public void ThenIOpenStagingReactionsInTubesWorkplaceAndStartNewBatch()
        {
            BDMainPage bDMainPage = new BDMainPage();

            bDMainPage.OpenTubesManualDripping();
            IsTrue(bDMainPage.AssertOpenTubesManualDripping(), "Заголовок рабочего места не найден");

            MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSDbBatchDropperStab);
            string command        = $@"Select count ([Id]) FROM [BatchDropperStab].[dbo].[Batches] Where Status = 9 and name like 'TT-%'";
            var    countOfBatches = _msBDConnector.QueryExecutorScalar(command); // Сколько бэтчей со статусом "Сформирован"
            int    intCount;

            intCount = System.Convert.ToInt32(countOfBatches); // перевод количества в int

            if (intCount != 0)
            {
                for (int i = 1; i <= intCount; i++)
                {
                    BDTubesManualDrippingPage bDTubesManualDrippingPage = new BDTubesManualDrippingPage();
                    bDTubesManualDrippingPage.AssertButtonIsVisible();        // подтверждение, что кнопка взять в работу есть
                    bDTubesManualDrippingPage.ClickTakeToWorkButton();        // нажать взять в работу
                    bDTubesManualDrippingPage.ClickConfirmTakeToWorkButton(); // подтвердить взятие в работу бэтча
                    CommonSteps commonSteps = new CommonSteps();
                    commonSteps.ThenThePopupWithTitleShouldBeClosed();        // закрыть окно с распечаткой
                    bDTubesManualDrippingPage.SetTestBatchID();               // подтвердить ID бэтча
                    commonSteps.ThenThePopupWithTitleShouldBeClosed();        // закрыть окно с распечаткой
                    bDTubesManualDrippingPage.SetUsercode();                  // ввести ШК пользователя
                    bDTubesManualDrippingPage.AddClipboardCopyOfBatches();    //раскапать бэтчи
                    bDTubesManualDrippingPage.AddClipboardCopyOfTubes();      // раскапать пробы
                    bDTubesManualDrippingPage.ConfurmEndOfWork();             // подтвердить завершение раскапывания личным ШК пока есть поле для ввода
                    commonSteps.ThenThePopupWithTitleShouldBeClosed();        // закрыть окно с распечаткой
                }
            }
            else
            {
                throw new NullReferenceException("Ошибочка вышла! В базе не найдено бэтчей со статусом: Отрицательные контроли собраны");
            }
        }
示例#13
0
        public void ThenCreateNewTerminalRefreshPageAndCheckThatItExist()
        {
            BDTerminalsPage BDTerminals = new BDTerminalsPage();

            // добавить новый тестовый терминал
            BDTerminals.ClikToAddTerminal();
            BDTerminals.AddNewTerminalTitle("Title of Autotest Terminal");
            BDTerminals.AddNewTerminalName("System name of Autotest Terminal");
            BDTerminals.AddLaboratory();
            BDTerminals.ClickSaveNewTerminalButton();
            CommonSteps commons = new CommonSteps();

            commons.RefreshPage(); // обновили страницу
            BDTerminals.WaitAfterRefresh();
            if (BDTerminals.CheckNewTerminal("Title of Autotest Terminal").Exists())
            {
                Debug.WriteLine("ОК. Терминал добавлен");
            }
            else
            {
                Debug.WriteLine("Что-то пошло не так, новый терминал не сохранился");
            }
        }
示例#14
0
        public void ThenITryToChangeInputFieldsInNewTerminal()
        {
            BDTerminalsPage BDTerminals = new BDTerminalsPage();

            // нажать добавить и отменить
            BDTerminals.ClikToAddTerminal();
            BDTerminals.AddNewTerminalTitle("New Title of Autotest Terminal");
            BDTerminals.AddNewTerminalName("New System name of Autotest Terminal");
            BDTerminals.AddAnotherLaboratory();
            BDTerminals.ClikCancelAddNewTerminalButton();
            if (BDTerminals.CheckNewTerminal("New Title of Autotest Terminal").Exists()
                & BDTerminals.CheckNewTerminal("New System name of Autotest Terminal").Exists())
            {
                Debug.WriteLine("Что-то пошло не так, сохранен новый терминал при нажатии на Отмену");
            }
            else
            {
                Debug.WriteLine("ОК. При отмене новый терминал не добавляется");
            }
            // изменить поля и нажать отменить
            BDTerminals.ChangeTerminalWithThisTitleButton("Title of Autotest Terminal").Click();
            BDTerminals.CleanEmrtyTerminalTitle();
            BDTerminals.CleanEmrtyTerminalName();
            BDTerminals.AddNewTerminalTitle("New Title of Autotest Terminal");
            BDTerminals.AddNewTerminalName("New System name of Autotest Terminal");
            BDTerminals.AddAnotherLaboratory();
            BDTerminals.ClikCancelAddNewTerminalButton();
            if (BDTerminals.CheckNewTerminal("New Title of Autotest Terminal").Exists()
                & BDTerminals.CheckNewTerminal("New System name of Autotest Terminal").Exists())
            {
                Debug.WriteLine("Что-то пошло не так, сохренены изменения при отмене");
            }
            else
            {
                Debug.WriteLine("ОК. Изменения при отмене не применились");
            }
            // изменить поля и нажать сохранить
            BDTerminals.ChangeTerminalWithThisTitleButton("Title of Autotest Terminal").Click();
            BDTerminals.CleanEmrtyTerminalTitle();
            BDTerminals.CleanEmrtyTerminalName();
            BDTerminals.AddNewTerminalTitle("New Title of Autotest Terminal");
            BDTerminals.AddNewTerminalName("New System name of Autotest Terminal");
            BDTerminals.AddAnotherLaboratory();
            BDTerminals.ClickSaveNewTerminalButton();
            if (BDTerminals.CheckNewTerminal("New Title of Autotest Terminal").Exists()
                & BDTerminals.CheckNewTerminal("New System name of Autotest Terminal").Exists())
            {
                Debug.WriteLine("ОК. Изменения в полях сохранены");
            }
            else
            {
                Debug.WriteLine("Что-то пошло не так, изменения не сохранены");
            }
            CommonSteps commons = new CommonSteps();

            commons.RefreshPage(); // обновили страницу
            BDTerminals.WaitAfterRefresh();
            if (BDTerminals.CheckNewTerminal("New Title of Autotest Terminal").Exists()
                & BDTerminals.CheckNewTerminal("New System name of Autotest Terminal").Exists())
            {
                Debug.WriteLine("ОК. Изменения в полях отображаются после обновления страницы");
            }
            else
            {
                Debug.WriteLine("Что-то пошло не так, изменения не сохранены, не отображаются после обноления страницы");
            }
        }
        public void ThenICheckSendCopyResultsInBatchPage()
        {
            BDMainPage bDMainPage = new BDMainPage();

            bDMainPage.OpenBatches();                                                                                  // переходим на страницу Бэтчи
            MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSDbBatchDropperStab);
            string command        = $@"Select count ([Id]) FROM [BatchDropperStab].[dbo].[Batches] Where Status = 50"; // считаем количество бэтчей в статусе "Требует валидации"
            var    countOfBatches = _msBDConnector.QueryExecutorScalar(command);
            int    intCount;

            intCount = System.Convert.ToInt32(countOfBatches);

            if (intCount != 0)
            {
                string command1 = $@"SELECT [Id] FROM[BatchDropperStab].[dbo].[Batches] Where Status = 50 Order by ChangedOn desc";
                var    listOfID = _msBDConnector.QueryExecutor(command1);

                foreach (string id in listOfID) // Если подходящих бэтчей несколько, берём каждый
                {
                    // Кликаем на галку проверки на странице бэтчей
                    BDBatchesPage bDBatchesPage = new BDBatchesPage();
                    CommonSteps   commons       = new CommonSteps();
                    commons.RefreshPage();
                    IsTrue(bDBatchesPage.AssertContentOfBatchButton(), "Не найдена кнопка для открытия содержимого первого бэтча со статусом Требует валидации");
                    bDBatchesPage.OpenContentOfFirstNeedValidateTest();

                    SecondTab = commons.ThenTheTabWithTitleShouldBeOpened("BatchDropper");

                    BDBatchesPage bDBatchesPageNew = new BDBatchesPage(SecondTab);
                    bDBatchesPageNew.ClickIconResultsWasChecked();
                    IsTrue(bDBatchesPageNew.AssertDialogWindowConfirmIsOpen(), "Не открылось диалоговое окно подтверждения действия Результаты проверены");
                    bDBatchesPageNew.ClickConfirmButtonResultsWasChecked();

                    // отпраавляем результат
                    bDMainPage.OpenBatches();
                    commons.RefreshPage();

                    bDBatchesPage.ClickIconResultsReadyToSend();
                    IsTrue(bDBatchesPage.AssertDialogWindowReadyToSendIsOpen(), "Не открылось диалоговое окно подтверждения действия Экспорт в LW");
                    bDBatchesPage.ClickConfirmReadyToSendButton();
                    IsTrue(bDBatchesPage.AssertSucceedMessage(), "Сообщение об успехе не появилось");

                    // копируем файл с подтвержденным результатом в LabWare
                    var      batchNeedsCopy = System.Convert.ToInt32(id);
                    string[] getFile        = Directory.GetFiles(@"\\\\tst10-web.medlinx.corp\\BatchDropper\\LW_Stab\\", $"*{batchNeedsCopy}.csv");
                    string   fileName       = Path.GetFileName(getFile[0]);
                    System.Diagnostics.Debug.WriteLine(fileName);

                    File.Copy(getFile[0], $"\\\\tst10-lwapp.medlinx.corp\\LW-LIMS-V6\\LW-LIMS_KULIKOV-A\\{fileName}");

                    // проверяем, что файл скопировался
                    string[] checkFile = Directory.GetFiles(@"\\\\tst10-lwapp.medlinx.corp\\LW-LIMS-V6\\LW-LIMS_KULIKOV-A\\", $"*{batchNeedsCopy}.csv");
                    string   checkName = Path.GetFileName(checkFile[0]);
                    if (fileName == checkName)
                    {
                        System.Diagnostics.Debug.WriteLine("Результаты для бэтча " + batchNeedsCopy + " выгружены в LabWare");
                    }
                    else
                    {
                        System.Diagnostics.Debug.WriteLine("Что то пошло не так. Результаты бэтча " + batchNeedsCopy + " не удалось выгрузить в LabWare");
                    }
                    System.Threading.Thread.Sleep(4000);
                }// Этот блок будет воспроизведен для всех подходящих по статусу бэтчей
            }
            else
            {
                throw new NullReferenceException("Ошибочка вышла! В базе не найдено бэтчей, требующих проверки результатов");
            }
        }
        public void WhenICreateTestWithParametersFromTheTable(Table table)
        {
            var BDTestInstance = table.CreateInstance <Models.BDTest>();
            //  BDTestInstance.Subgroups = table.CreateInstance<List<String>>();
            //  var result = BDTestInstance.GetSubrgoups;

            var resultListOfSubgroups  = BDTestInstance.GetList(f => f.Subgroups);
            var resultListOfReagentsOT = BDTestInstance.GetList(f => f.ReagentsOT);
            var resultOfReagents       = BDTestInstance.GetList(f => f.CellReagents);
            var resultOfStandarts      = BDTestInstance.GetList(f => f.CellStandarts);

            BDMainPage BDMain = new BDMainPage();

            BDMain.OpenDictionaries();
            IsTrue(BDMain.AssertOpenDictTest(), "Не найден заголовок на странице Тесты");

            BDDictTestPage BDDictTest = new BDDictTestPage();

            BDDictTest.ClickAddTestBtn();

            CommonSteps commons = new CommonSteps();

            SecondTab = commons.ThenTheTabWithTitleShouldBeOpened("BatchDropper");
            BDNewTestPage BDNewTest = new BDNewTestPage(SecondTab);

            BDNewTest.SetNameOfProgAmpWithArg(BDTestInstance.AmpProgram); // Заполнение программы амплификации

            BDNewTest.SetNameOfTestWithArg(BDTestInstance.Name);          // Заполнение имени теста
            System.Threading.Thread.Sleep(200);

            foreach (string sg in resultListOfSubgroups)
            {
                BDNewTest.SetNameOfSubgroup(sg);
            }                                                                              // Заполнение подгруппы Выделения

            if (BDTestInstance.Volume != 0)
            {
                BDNewTest.SetVolumeOfTube(BDTestInstance.Volume);
            }                                                                                     // Заполнение объема пробирки
            else
            {
                throw new InvalidCastException("Объем пробирки не может быть нулевым. Измените значение в файле сценария");
            }


            if (BDTestInstance.IsDNA == "true")
            {
                BDNewTest.SetCheckboxTubeIsolationForDNK();
            }                                                                                 // Чекбокс ДНК
            else if (BDTestInstance.IsDNA == "false")
            {
            }
            else
            {
                throw new ArgumentOutOfRangeException("Значение агрумента должно быть строго true либо false. Измените значение в файле сценария");
            }

            if (BDTestInstance.IsWAX == "true")
            {
                BDNewTest.SetCheckboxHasWax();
            }                                                                    // Чекбокс ВОСК
            else if (BDTestInstance.IsWAX == "false")
            {
            }
            else
            {
                throw new ArgumentOutOfRangeException("Значение агрумента должно быть строго true либо false. Измените значение в файле сценария");
            }

            if (BDTestInstance.IsActive == "false")
            {
                BDNewTest.SetCheckboxIsActive();
            }                                                                          // Чекбокс Активен
            else if (BDTestInstance.IsActive == "true")
            {
            }
            else
            {
                throw new ArgumentOutOfRangeException("Значение агрумента должно быть строго true либо false. Измените значение в файле сценария");
            }

            if (BDTestInstance.Doubles != 0)
            {
                BDNewTest.SetCountOfDoubles(BDTestInstance.Doubles);
            }                                                                                       // Дубли
            else
            {
                throw new NullReferenceException("Количество дублей не может быть нулевым. Измените параметр в файле сценария");
            }

            if (resultListOfReagentsOT.First() != "")
            {
                foreach (string r in resultListOfReagentsOT)
                {
                    BDNewTest.SetReagentsOT(r);
                }                                                                       // Заполнение Реагентов ОТ.
            }

            //_________________________________________ЛУНКИ________________________________________________________________

            int count = BDTestInstance.CellsCount; // Получение указанного количества лунок для сценария

            if (count == 1)                        // Строго для однолуночного теста
            {
                //Заполняем канал только для первой лунки:
                if (BDTestInstance.Fam == "true")
                {
                    BDNewTest.SetFirstChannelOfOneCell();
                }
                else if (BDTestInstance.Fam == "false")
                {
                }
                else
                {
                    throw new ArgumentOutOfRangeException("Значение агрумента fam должно быть строго true либо false. Измените значение в файле сценария");
                }
                if (BDTestInstance.Hex == "true")
                {
                    BDNewTest.SetSecondChannelOfOneCell();
                }
                else if (BDTestInstance.Hex == "false")
                {
                }
                else
                {
                    throw new ArgumentOutOfRangeException("Значение агрумента hex должно быть строго true либо false. Измените значение в файле сценария");
                }
                if (BDTestInstance.Rox == "true")
                {
                    BDNewTest.SetThirdChannelOfOneCell();
                }
                else if (BDTestInstance.Rox == "false")
                {
                }
                else
                {
                    throw new ArgumentOutOfRangeException("Значение агрумента rox должно быть строго true либо false. Измените значение в файле сценария");
                }

                BDNewTest.SetNameOfFirstCell();                         // Заполняем имя только для первой лунки

                BDNewTest.SetControlOption(BDTestInstance.CellControl); // Заполняем луночный контроль первой лунки
                System.Threading.Thread.Sleep(1000);
                if (resultOfReagents.First() != "")
                {
                    foreach (string r in resultOfReagents)
                    {
                        BDNewTest.SetReagentOption(r); System.Threading.Thread.Sleep(900);
                    }                                                                                                             // Заполняем реагенты первой лунки
                }
                if (resultOfStandarts.First() != "")
                {
                    foreach (string j in resultOfStandarts)
                    {
                        BDNewTest.SetStandartOption(j);
                    }                           //Заполняем страндартs для первой лунки
                }
                BDNewTest.SaveTest();           // Сохраняем тест
            }
            else if (count > 1 && count <= 20)  // Если количество лунок в тесте не равно 1
            {
                for (int i = 1; i < count; i++) // Кликаем на кнопку добавления лунки нужное количество раз
                {
                    BDNewTest.ClickTheAddCellBtn();
                    System.Threading.Thread.Sleep(100);
                }

                for (int j = 0; j < count; j++)      // Заполнение нужного количества лунок значениями
                {
                    BDNewTest.SetNameForSomeCell(j); //Заполнение имени каждой лунки теста
                    if (BDTestInstance.CellControl != "")
                    {
                        BDNewTest.SetControlOfSomeCell(j, BDTestInstance.CellControl);
                    }                                                                // Заполнение луночного контроля для лунок
                    else
                    {
                    }

                    if (BDTestInstance.Fam == "true")
                    {
                        BDNewTest.SetFirstChannelOfSomeCell(j);
                    }
                    else if (BDTestInstance.Fam == "false")
                    {
                    }
                    else
                    {
                        throw new ArgumentOutOfRangeException("Значение агрумента fam должно быть строго true либо false. Измените значение в файле сценария");
                    }
                    if (BDTestInstance.Hex == "true")
                    {
                        BDNewTest.SetSecondChannelOfSomeCell(j);
                    }
                    else if (BDTestInstance.Hex == "false")
                    {
                    }
                    else
                    {
                        throw new ArgumentOutOfRangeException("Значение агрумента hex должно быть строго true либо false. Измените значение в файле сценария");
                    }
                    if (BDTestInstance.Rox == "true")
                    {
                        BDNewTest.SetThirdChannelOfSomeCell(j);
                    }
                    else if (BDTestInstance.Rox == "false")
                    {
                    }
                    else
                    {
                        throw new ArgumentOutOfRangeException("Значение агрумента rox должно быть строго true либо false. Измените значение в файле сценария");
                    }
                    System.Threading.Thread.Sleep(1100);
                }

                for (int k = 0; k <= count - 1; k++) // Заполнение нужного количества лунок значениями
                {
                    if (resultOfStandarts.First() != "")
                    {
                        foreach (string st in resultOfStandarts)

                        {
                            BDNewTest.SetStandartOfSomeCell(k, st);
                        }
                    }
                }
                for (int p = 1; p <= count; p++) // Заполнение нужного количества лунок значениями
                {
                    foreach (string r in resultOfReagents)
                    {
                        BDNewTest.SetReagentOfSomeCell(p, r);
                    }
                }

                BDNewTest.SaveTest();
            }
            else
            {
                throw new ArgumentOutOfRangeException("Давайте не будем создавать более 20-ти лунок в тесте.");
            }



            System.Threading.Thread.Sleep(2000);
        }