public void WhenIConfirmAllParent_BatchesIdForStartProductionAcceptance()
        {
            BDMainPage mainPage = new BDMainPage();

            mainPage.OpenProductionAcceptance();
            BDProductionAcceptancePage bDProductionAcceptancePage = new BDProductionAcceptancePage();
            MSDatabaseConnector        _msBDConnector             = new MSDatabaseConnector(Config.MSDbBatchDropperStab);
            string command        = $@"Select count ([Id]) FROM [BatchDropperStab].[dbo].[Batches] Where Status = 10";
            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 = 10 Order by ChangedOn desc";
                var    listOfID = _msBDConnector.QueryExecutor(command1);
                foreach (string i in listOfID)
                {
                    Debug.WriteLine(i);
                    bDProductionAcceptancePage.SetParentBatch(i);
                }
            }
            IsTrue(bDProductionAcceptancePage.AssertCountOfElementsInfo(countOfBatches), "Количество элементов не соответствует ожидаемому");
        }
Exemplo n.º 2
0
        public void WhenICreateNewReagentICheckThatItExistAndCheckItInDatabase()
        {
            BDDictionariesReagentsPage bDDictionariesReagentsPage = new BDDictionariesReagentsPage();

            bDDictionariesReagentsPage.ClickToAddReagent();
            IsTrue(bDDictionariesReagentsPage.AssertOpenAddingNewReagent(), "Что-то пошло не так, нет пустых полей для добавления нового реагента в справочник");
            bDDictionariesReagentsPage.AddNewReagentName("Test1");
            bDDictionariesReagentsPage.AddNewReagentTubeVolume("999");
            bDDictionariesReagentsPage.AddNewReagentsSampleVolume("99");
            bDDictionariesReagentsPage.ClickToSaveReagentButton();
            IsTrue(bDDictionariesReagentsPage.CheckNewCreatedReagent("Test1").Exists(), "Что-то пошло не так, новый реагент не добавлен");
            CommonSteps commons = new CommonSteps();

            commons.RefreshPage(); // обновили страницу
            bDDictionariesReagentsPage.WaitAfterRefresh();
            IsTrue(bDDictionariesReagentsPage.CheckNewCreatedReagent("Test1").Exists(), "Что-то пошло не так, новый реагент пропал после обновления");
            MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSDbBatchDropperStab);
            // проверяем, что появилась запись в бд
            string command        = $@"Select count ([Id]) FROM [BatchDropperStab].[dbo].[Reagents] Where name = 'Test1' and TubeVolume = 999 and SampleVolume=99"; //
            var    countOfBatches = _msBDConnector.QueryExecutorScalar(command);
            int    intCount;

            intCount = System.Convert.ToInt32(countOfBatches);
            if (intCount == 1)
            {
                Debug.WriteLine("ОК. Реагент успешно добавлен в базу данных");
            }
            else
            {
                Debug.WriteLine("Что-то пошло не так, реагент не отображается в базе");
            }
            Debug.WriteLine("ОК. Проверка добавления реагента с валидными значениями успешно пройдена");
        }
        public void ThenTheSampleWithWrongLocationDontAddToSorting()
        {
            MSDatabaseConnector _msBDConnectorLW = new MSDatabaseConnector(Config.MSDbLW);
            string command1   = $@"select TOP(1) s.TEXT_ID from test t with (nolock)
            inner join SAMPLE s on t.SAMPLE_NUMBER=s.SAMPLE_NUMBER
            where t.status='I' and t.ANALYSIS='HELICOBACTER_PYLORI_ДНК' and s.TEMPLATE = 'smp_in' and s.status='I' and s.LOCATION = 'HELIX-SPB' ";
            var    result_spb = _msBDConnectorLW.QueryExecutorScalar(command1);
            string command2   = $@"select TOP(1) s.TEXT_ID from test t with (nolock)
            inner join SAMPLE s on t.SAMPLE_NUMBER=s.SAMPLE_NUMBER
            where t.status='I' and t.ANALYSIS='HELICOBACTER_PYLORI_ДНК' and s.TEMPLATE = 'smp_in' and s.status='I' and s.LOCATION = 'HELIX-MSK' ";
            var    result_msk = _msBDConnectorLW.QueryExecutorScalar(command2);

            BDSortingPage sortingPage = new BDSortingPage();

            sortingPage.IsSampleCodeFieldActive();
            // Добавление образца с локацией Санкт-Петербург
            sortingPage.CodeInputField.SendKeys(result_spb);
            sortingPage.CodeInputField.SendKeys(Keys.Enter);
            sortingPage.IsSampleCodeFieldActive();
            // Добавление образца с локацией Москва
            sortingPage.CodeInputField.SendKeys(result_msk);
            sortingPage.CodeInputField.SendKeys(Keys.Enter);
            sortingPage.IsSampleCodeFieldActive();

            sortingPage.EndBatch();
        }
        public void WhenICanceledBatchByDatabase(string type)
        {
            MSDatabaseConnector _msBDConnectorLW = new MSDatabaseConnector(Config.MSDbLW);

            if (type.Equals("parent")) // Сделать неактивным родительский бэтч
            {
                string command = $@"UPDATE [BatchDropperStab].[dbo].[Batches] SET Status = 110 Where ID = (SELECT TOP(1) ID from [BatchDropperStab].[dbo].[Batches] Where [Name] like '%P-%' Order By ChangedOn desc)";
                var    result  = _msBDConnectorLW.NonQueryExecutor(command);
            }
            else if (type.Equals("child")) // Сделать неактивным дочерний бэтч
            {
                string command2 = $@"UPDATE [BatchDropperStab].[dbo].[Batches] SET Status = 110 Where ID = (SELECT TOP(1) ID from [BatchDropperStab].[dbo].[Batches] Where [Name] like '%C-%' Order By ChangedOn desc)";
                var    result2  = _msBDConnectorLW.NonQueryExecutor(command2);
            }
            else if (type.Equals("test")) // Сделать неактивным тестовый бэтч
            {
                string command3 = $@"UPDATE [BatchDropperStab].[dbo].[Batches] SET Status = 110 Where ID = (SELECT TOP(1) ID from [BatchDropperStab].[dbo].[Batches] Where [Name] like '%T-%' Order By ChangedOn desc)";
                var    result3  = _msBDConnectorLW.NonQueryExecutor(command3);
            }
            else if (type.Equals("PT")) // Сделать неактивным PT бэтч
            {
                string command3 = $@"UPDATE [BatchDropperStab].[dbo].[Batches] SET Status = 110 Where ID = (SELECT TOP(1) ID from [BatchDropperStab].[dbo].[Batches] Where [Name] like '%PT-%' Order By ChangedOn desc)";
                var    result3  = _msBDConnectorLW.NonQueryExecutor(command3);
            }
        }
Exemplo n.º 5
0
        public void WhenIAddNewEquimpentTypeForNomenclatureAndSetGender(string eqCode, string hxid, string gender)
        {
            MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSACGD);
            string command = $@"INSERT INTO [AllCenterGlobalDictionariesWork].[dbo].[AllEquipmentsInNomenclatures] VALUES ({eqCode},'{hxid}','{gender}','2019-01-01T00:09:07.683')";

            _msBDConnector.NonQueryExecutor(command);
        }
Exemplo n.º 6
0
        public void WhenIDeleteAllEquipmentsForNomenclature(string hxid)
        {
            MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSACGD);
            string command = $@"DELETE FROM [AllCenterGlobalDictionariesWork].[dbo].[AllEquipmentsInNomenclatures] Where HXID = '{hxid}'";

            _msBDConnector.NonQueryExecutor(command);
        }
Exemplo n.º 7
0
        public void WhenISetGenderForNomenclatureItem(string gender, string hxid)
        {
            MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSACGD);
            string command = $@"Update [AllCenterGlobalDictionariesWork].[dbo].[AllNomenclatureItems] SET Gender = '{gender}' Where HXID = '{hxid}'";

            _msBDConnector.NonQueryExecutor(command);
        }
Exemplo n.º 8
0
        public void ThenIFill_OutTheTestPlanchetesByPositiveControls()
        {
            //Находим в базе бэтчдроппера количество бэтчей, с нужным статусом:
            MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSDbBatchDropperStab);
            string command        = $@"Select count ([Id]) FROM [BatchDropperStab].[dbo].[Batches] Where Status = 20";
            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 = 20 Order by ChangedOn desc";
                var    listOfID = _msBDConnector.QueryExecutor(command1);
                BDPositiveControlsWorkplacePage bDPositiveControlsPage = new BDPositiveControlsWorkplacePage();
                foreach (string i in listOfID)
                {
                    bDPositiveControlsPage.SetTestBatch(i);
                    BDReagentsWorkplacePage bDReagentsWorkplacePage = new BDReagentsWorkplacePage();
                    bDReagentsWorkplacePage.SetUsercode();
                    bDPositiveControlsPage.DrippingPositiveControls();
                }
            }
            else
            {
                throw new NullReferenceException("Ошибочка вышла! В базе не найдено бэтчей со статусом: Отрицательные контроли собраны");
            }
        }
Exemplo n.º 9
0
        public void WhenIAddDNK_SampleOfTestToField(int count, string name, string workplace)
        {
            MSDatabaseConnector _msBDConnectorLW = new MSDatabaseConnector(Config.MSDbLW);
            string command = $@"select TOP({count}) s.TEXT_ID from test t with (nolock)
            inner join SAMPLE s on t.SAMPLE_NUMBER=s.SAMPLE_NUMBER
            where t.status='I' and t.ANALYSIS='{name}' and s.TEMPLATE = 'smp_in' and s.status='I' and s.LOCATION = 'HELIX-SPB' ";
            var    result  = _msBDConnectorLW.QueryExecutor(command);

            if (workplace.Equals("IsolationDNK")) // переход в выделение в ДНК и добавление образца
            {
                BDMainPage bDMainPage = new BDMainPage();
                bDMainPage.OpenDNKWorkplace();
                BDIsolationDNKPage bDIsolationDNKPage = new BDIsolationDNKPage();
                bDIsolationDNKPage.AssertTheButtonIsVisible();
                bDIsolationDNKPage.ClickCreateBatch();
                bDIsolationDNKPage.AssertBatchIsCreated();
                bDIsolationDNKPage.SetParentBatchID();
                BDPlanshetPositionPage bDPlanshetPositionPage = new BDPlanshetPositionPage();
                Thread.Sleep(500);
                // bDPlanshetPositionPage.NewWindowConfirmUsercode();
                bDIsolationDNKPage.AddSample(result);
            }
            else if (workplace.Equals("ProductionAcceptance")) // переход в Прием в постановке и добавление образца
            {
                BDMainPage bDMainPage = new BDMainPage();
                bDMainPage.OpenProductionAcceptance();
                BDProductionAcceptancePage bDProductionAcceptancePage = new BDProductionAcceptancePage();
                bDProductionAcceptancePage.AddSample(result);
            }
        }
Exemplo n.º 10
0
        public void ThenIFill_OutTheTestPlanchetesByManualDripping()
        {
            BDManualDrippingPage bDManualDrippingPage = new BDManualDrippingPage();
            MSDatabaseConnector  _msBDConnector       = new MSDatabaseConnector(Config.MSDbBatchDropperStab);
            string command        = $@"Select count ([Id]) FROM [BatchDropperStab].[dbo].[Batches] Where Status = 22";
            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 = 22 Order by ChangedOn desc";
                var    listOfID = _msBDConnector.QueryExecutor(command1);
                foreach (string i in listOfID)
                {
                    bDManualDrippingPage.ConfirmTestBatchField.WaitForClickability();
                    bDManualDrippingPage.ConfirmTestBatchField.SendKeys(i).SendKeys(Keys.Enter);
                    CommonSteps commonSteps = new CommonSteps();
                    commonSteps.ThenThePopupWithTitleShouldBeClosed();
                    BDReagentsWorkplacePage bDReagentsWorkplacePage = new BDReagentsWorkplacePage();
                    bDReagentsWorkplacePage.SetUsercode();
                    bDManualDrippingPage.AddClipboardCopyOfBatches();
                    bDManualDrippingPage.AddClipboardCopyOfTubes();
                    bDManualDrippingPage.ConfimEndOfDripping();
                    commonSteps.ThenThePopupWithTitleShouldBeClosed();
                }
            }
        }
 public void WhenICreateNewSchedByDatabase()
 {
     MSDatabaseConnector _msBDConnectorLW = new MSDatabaseConnector(Config.MSDbLW);
     string command  = $@"INSERT INTO [BatchDropperStab].[dbo].[Schedules] Values ('autotest','11:57:00.000','11:41:00.000',1)";
     var    result   = _msBDConnectorLW.NonQueryExecutor(command);
     string command2 = $@"INSERT INTO [BatchDropperStab].[dbo].[Schedules] Values ('autotestmsk','11:47:00.000','11:40:00.000',2)";
     var    result2  = _msBDConnectorLW.NonQueryExecutor(command2);
 }
Exemplo n.º 12
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 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 WhenIConfirmParent_BatchIdForStartProductionAcceptance()
        {
            BDMainPage mainPage = new BDMainPage();

            mainPage.OpenProductionAcceptance();
            BDProductionAcceptancePage bDProductionAcceptancePage = new BDProductionAcceptancePage();
            MSDatabaseConnector        _msBDConnector             = new MSDatabaseConnector(Config.MSDbBatchDropperStab);
            string command = $@"SELECT [Id] FROM[BatchDropperStab].[dbo].[Batches] Order by ChangedOn desc";
            var    Parent  = _msBDConnector.QueryExecutorScalar(command);

            bDProductionAcceptancePage.SetParentBatch(Parent);
            System.Threading.Thread.Sleep(500);
            IsTrue(bDProductionAcceptancePage.AssertCountOfChildBatches(), "Количество элементов не соответствует ожидаемому");
        }
        public void WhenIConfirmTest_BatchIdForContinueManualDripping()
        {
            BDMainPage mainPage = new BDMainPage();

            mainPage.OpenManualDripping();
            mainPage.AssertOpenManualDripping();
            MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSDbBatchDropperStab);
            string command   = $@"SELECT TOP(1) ID from [BatchDropperStab].[dbo].[Batches] Where [Name] like '%T-%' Order By ChangedOn desc";
            var    tESTBATCH = _msBDConnector.QueryExecutorScalar(command);
            // Бэтчдроппер БД, вытащить айди активного тестового бэтча измененного самым последним.
            BDManualDrippingPage manualDrippingPage = new BDManualDrippingPage();

            manualDrippingPage.ConfirmTestBatchId(tESTBATCH);
        }
Exemplo n.º 16
0
        //Удаление расписания
        public void DeleteSchedule()
        {
            MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSDbBatchDropperStab);
            List <string>       tables         = new List <string>()
            {
                "[Schedules]"
            };

            foreach (string table in tables)
            {
                string command = $@"DELETE FROM {table} Where Name = 'autoshed'";
                _msBDConnector.NonQueryExecutor(command);
            }
        }
Exemplo n.º 17
0
        public void WhenIGoToWorkplaceICheckThatTerminalNumberExists(string workplace, int terminal)
        {
            BDMainPage BDMain = new BDMainPage();

            BDMain.OpenWorkplaceWithName(workplace);
            TerminalSettingPage TSettings = new TerminalSettingPage();

            IsTrue(BDMain.AssertWorkplaceWithName(workplace), $"Что-то пошло не так, на странице не отображается заголовок {workplace}");
            MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSDbBatchDropperStab);
            string command = $@"select [Name] FROM [BatchDropperStab].[dbo].[Terminals] where id={terminal}";
            var    name    = _msBDConnector.QueryExecutorScalar(command);

            IsTrue(TSettings.AssertLinkWitnThisTerminalName(name), $"Что-то пошло не так, терминал {terminal} c именем {name} не выбран");
        }
Exemplo n.º 18
0
        public void GivenIClearAllDataExceptMultiplexesFromBatchDropperDatabase()
        {
            MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSDbBatchDropperStab);
            List <string>       tables         = new List <string>()
            {
                "[ReasonCancellationSampleCancellations]", "[SampleCancellationSampleTests]", "[SampleCancellations]", "[Batches]", "[Samples]", "[MultiplexesOnSamples]"
            };

            foreach (string table in tables)
            {
                string command = $@"DELETE FROM {table}";
                _msBDConnector.NonQueryExecutor(command);
            }
        }
Exemplo n.º 19
0
        public void WhenISetStatusForAllEquipmentsAndEquipmentscodeAndAccountcode(string status, string eqCode, string account)
        {
            MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSACGD);

            if (eqCode == "")
            {
                string command = $@"Update [AllCenterGlobalDictionariesWork].[dbo].[AllEquipmentsInAccounts] SET Status = {status} Where AccountCode = '{account}'";
                _msBDConnector.NonQueryExecutor(command);
            }
            else if (eqCode != "")
            {
                string command = $@"Update [AllCenterGlobalDictionariesWork].[dbo].[AllEquipmentsInAccounts] SET Status = {status} Where AccountCode = '{account}' and Code = {eqCode}";
                _msBDConnector.NonQueryExecutor(command);
            }
        }
Exemplo n.º 20
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} не выбран");
        }
        public void ThenIFill_OutTheSorting_PlanchetBySamplesOfTest(int count, string testname)
        {
            MSDatabaseConnector _msBDConnectorLW = new MSDatabaseConnector(Config.MSDbLW);
            string        command     = $@"select TOP({count}) s.TEXT_ID from test t with (nolock)
            inner join SAMPLE s on t.SAMPLE_NUMBER=s.SAMPLE_NUMBER
            where t.status='I' and t.ANALYSIS='{testname}' and s.TEMPLATE = 'smp_in' and s.status='I' and s.LOCATION = 'HELIX-SPB' ";
            var           result      = _msBDConnectorLW.QueryExecutor(command);
            BDSortingPage sortingPage = new BDSortingPage();

            sortingPage.IsSampleCodeFieldActive();

            foreach (string i in result)
            {
                sortingPage.CodeInputField.SendKeys(i);
                sortingPage.CodeInputField.SendKeys(Keys.Enter);
                sortingPage.IsSampleCodeFieldActive();
            }
        }
        public void WhenIGoToDatabaseICheckThenBatchesHasStatus(int counBatches, int status)
        {
            //Проверить, что бэтч в статусе Собран
            MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSDbBatchDropperStab);
            string command        = $@"Select count([Id]) FROM [BatchDropperStab].[dbo].[Batches] Where Status = {status}";
            var    countOfBatches = _msBDConnector.QueryExecutorScalar(command); // Сколько бэтчей со статусом "Сформирован"
            int    intCount;

            intCount = System.Convert.ToInt32(countOfBatches);
            if (intCount == counBatches)
            {
                Debug.WriteLine($"ОК. В базе отображаются {counBatches} бэтча в статусе {status}");
            }
            else
            {
                Debug.WriteLine($"Что-то пошло не так. В базе в статусе {status} отображаются {intCount} вместо {counBatches}");
            }
        }
        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}'!");
            }
        }
Exemplo n.º 24
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("Ошибочка вышла! В базе не найдено бэтчей со статусом: Отрицательные контроли собраны");
            }
        }
Exemplo n.º 25
0
        public void ThenIFill_OutTheReagentsPlanchetes()
        {
            MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSDbBatchDropperStab);
            string command        = $@"Select count ([Id]) FROM [BatchDropperStab].[dbo].[Batches] Where Status = 9 and name like 'T-%'";
            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();
                    // скопипастить идентификатор и вставить его в поле ввода
                    bDReagentsWorkplacePage.SetTestBatchID();
                    // подтвердить ШК пользователя
                    bDReagentsWorkplacePage.SetUsercode();
                    // в поле "Личный штрих-код пользователя для следующего теста" вводить шк пользователя пока поле не станет
                    //с названием "Личный штрих-код пользователя для завершения"
                    if (!bDReagentsWorkplacePage.ConfirmUserCodeForEnding.Exists())
                    {
                        IsTrue(bDReagentsWorkplacePage.AssertThefieldIsActive(), "Поле для ввода не найдено или заблокировано");
                        bDReagentsWorkplacePage.FillOutTheReagents();
                    }
                    // ввести шк пользователя в поле "Личный штрих-код пользователя для завершения"
                    IsTrue(bDReagentsWorkplacePage.AssertConfirmUserCodeForEndingField(), "Поле для окончания ввода не найдено или заблокировано");
                    bDReagentsWorkplacePage.ConfirmUserCodeForEndingReagents();
                    // получить всплывающее сообщение. Происходит автопереход к списку оставшихся бэтчей в РМ Реагенты
                    IsTrue(bDReagentsWorkplacePage.AssertReadyMessage(), "Сообщение о раскапанных реагентах не пришло");
                    IsTrue(bDReagentsWorkplacePage.AssertTableOfBatches(), "Автоматический возврат на таблицу с бэтчами не сработал");
                }
            }
        }
        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}");
            }
        }
Exemplo n.º 27
0
 public void ThenIMakeActiveEquipmentByScript(string eqId)
 {
     MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSACGD);
     string command = $@"Update [AllCenterGlobalDictionariesWork].[dbo].[AllEquipments] SET IsRemoved = 0 Where Code = {eqId}";
     var    result  = _msBDConnector.NonQueryExecutor(command);
 }
Exemplo n.º 28
0
        public void ThenIFill_OutTheSorting_PlanchetBySamplesOwnOfUnionTestWithBiomaterialAndLocationAndVKAndOKOAndPKO(int count, string own, string union, List <String> testname, string bm, string location, List <String> VKName, List <String> OKOName, List <String> PKOName)
        {
            //переходим в РМ сортировка
            BDMainPage BDMain = new BDMainPage();

            BDMain.OpenSorting();
            IsTrue(BDMain.AssertOpenSorting(), "Заголовок рабочего места не найден");
            // создаем новый бэтч
            BDSortingPage sortingPage = new BDSortingPage();

            sortingPage.AssertTheButtonIsVisible();
            sortingPage.ClickCreateBatch();
            sortingPage.AssertTheConfirmBatchFieldIsVisible();
            sortingPage.SetParentBatchID();
            // подтверждаем своим ШК
            BDPlanshetPositionPage bDPlanshetPositionPage = new BDPlanshetPositionPage();

            IsTrue(bDPlanshetPositionPage.AssertConfirmBatchWindow(), "Нет окна для подтверждения установки планшета");
            bDPlanshetPositionPage.ConfirmUsercodeInPlanshetPositionPage();
            {
                int countOfTests = testname.Count();
                MSDatabaseConnector _msBDConnectorLW = new MSDatabaseConnector(Config.MSDbLW);
                string command = "";

                if (own == "only") // для случая, когда образец назначен ТОЛЬКО на тест/тесты
                {
                    if (countOfTests == 1)
                    {
                        command = $@"USE LW08v6
                    select TOP({count}) s.TEXT_ID
                    from
                    (select SAMPLE_NUMBER, count(ANALYSIS) as TestCommonCount
                    from [LW08v6].[dbo].[TEST] t with (nolock) 
                    group by SAMPLE_NUMBER
                    having count(ANALYSIS) = 1) MonoSamples
                    join TEST t on t.SAMPLE_NUMBER = MonoSamples.SAMPLE_NUMBER
                    join SAMPLE s on S.SAMPLE_NUMBER = t.SAMPLE_NUMBER
                    where t.status='I' and s.TEMPLATE = 'smp_in' and s.status='I' 
                    and s.LOCATION = '{location}' and t.ANALYSIS='{testname[0]}' and s.SAMPLE_TYPE ='{bm}'";
                    }
                    if (countOfTests == 2)
                    {
                        if (union == "")
                        {
                            command = $@"USE LW08v6
                    select TOP({count}) s.TEXT_ID as Sample
                    from TEST t
                    join SAMPLE s on t.SAMPLE_NUMBER = s.SAMPLE_NUMBER
                    where  t.status='I' and s.TEMPLATE = 'smp_in' and s.status='I' and s.LOCATION = '{location}' and s.SAMPLE_TYPE ='{bm}'
                    and t.ANALYSIS = '{testname[0]}' 
                    and exists (select top 1 1 from TEST t1 where  t1.SAMPLE_NUMBER = s.SAMPLE_NUMBER
                    and t1.ANALYSIS = '{testname[1]}') 
                    and not exists (select top 1 1 from TEST t1 where  t1.SAMPLE_NUMBER = s.SAMPLE_NUMBER
                    and t1.ANALYSIS not in  ('{testname[0]}', '{testname[1]}'))";
                        }
                        else if (union == "on")
                        {
                            command = $@"USE LW08v6 
                    select top({count}) s.TEXT_ID, s.STATUS, t.STATUS, s.RECD_DATE, s.ORDER_NUM, s.sample_type, t.ANALYSIS from test t with(nolock)
                    inner join SAMPLE s with(nolock) on t.SAMPLE_NUMBER=s.SAMPLE_NUMBER
                    where t.status='I' and t.ANALYSIS='{testname[0]}' and s.TEMPLATE = 'smp_in' and s.status='I' and s.LOCATION = '{location}' and sample_type='{bm}'
                    union
                    select top({count}) s.TEXT_ID, s.STATUS, t.STATUS, s.RECD_DATE, s.ORDER_NUM, s.sample_type, t.ANALYSIS from test t with(nolock)
                    inner join SAMPLE s with(nolock) on t.SAMPLE_NUMBER=s.SAMPLE_NUMBER
                    where t.status='I' and t.ANALYSIS='{testname[1]}' and s.TEMPLATE = 'smp_in' and s.status='I' and s.LOCATION = '{location}' and sample_type='{bm}'";
                        }
                    }
                }

                if (countOfTests == 2) // если 2 теста в коллекции, выполняем скрипт:
                {
                    if (union == "")
                    {
                        command = $@"USE LW08v6
                    select TOP({count}) Sample
                    from
                    (select s.TEXT_ID as Sample, t.ANALYSIS as Test
                    from TEST t
                    join SAMPLE s on t.SAMPLE_NUMBER = s.SAMPLE_NUMBER
                    where  t.status='I' and s.TEMPLATE = 'smp_in' and s.status='I' and s.LOCATION = '{location}' and s.SAMPLE_TYPE ='{bm}'
                    and t.ANALYSIS in ('{testname[0]}', '{testname[1]}')
                    group by TEXT_ID, ANALYSIS) sub
                    group by Sample
                    having count(Test) = 2";
                    }
                    else if (union == "on")
                    {
                        command = $@"USE LW08v6 
                    select top({count}) s.TEXT_ID from test t with(nolock)
                    inner join SAMPLE s with(nolock) on t.SAMPLE_NUMBER=s.SAMPLE_NUMBER
                    where t.status='I' and t.ANALYSIS='{testname[0]}' and s.TEMPLATE = 'smp_in' and s.status='I' and s.LOCATION = '{location}' and sample_type='{bm}'
                    union
                    select top({count}) s.TEXT_ID from test t with(nolock)
                    inner join SAMPLE s with(nolock) on t.SAMPLE_NUMBER=s.SAMPLE_NUMBER
                    where t.status='I' and t.ANALYSIS='{testname[1]}' and s.TEMPLATE = 'smp_in' and s.status='I' and s.LOCATION = '{location}' and sample_type='{bm}'";
                    }
                }
                else if (countOfTests == 1) // если 1 тест в коллекции, выполняем скрипт:
                {
                    command = $@"USE LW08v6
                SELECT TOP({count}) s.TEXT_ID FROM test t with (nolock)
                inner join SAMPLE s on t.SAMPLE_NUMBER=s.SAMPLE_NUMBER
                WHERE t.status='I' and t.ANALYSIS='{testname[0]}' 
                and s.TEMPLATE = 'smp_in' and s.status='I' and s.SAMPLE_TYPE ='{bm}' 
                and s.LOCATION = '{location}'";
                }
                else if (countOfTests == 3) // если 3 теста в коллекции, выполняем скрипт:
                {
                    command = $@"USE LW08v6
                select TOP ({count})Sample
                from
                (select s.TEXT_ID as Sample, t.ANALYSIS as Test
                from TEST t
                join SAMPLE s on t.SAMPLE_NUMBER = s.SAMPLE_NUMBER
                where  t.status='I' and s.TEMPLATE = 'smp_in' and s.status='I' and s.LOCATION = '{location}' and s.SAMPLE_TYPE ='{bm}'
                and t.ANALYSIS in ('{testname[0]}', '{testname[1]}','{testname[2]}')
                group by TEXT_ID, ANALYSIS) sub
                group by Sample
                having count(Test) = 3";
                }


                var result = _msBDConnectorLW.QueryExecutor(command);

                //sortingPage.IsSampleCodeFieldActive(); // закомментировано. 110719 стало зависать. Ранее работало.
                sortingPage.CodeInputField.WaitForClickability();

                foreach (string i in result)
                {
                    sortingPage.CodeInputField.SendKeys(i);
                    sortingPage.CodeInputField.SendKeys(Keys.Enter);
                    //sortingPage.IsSampleCodeFieldActive(); // закомментировано. 110719 стало зависать. Ранее работало.
                    sortingPage.CodeInputField.WaitForClickability();
                    if (sortingPage.FieldWithUsercodePlaceholder.Exists())
                    {
                        sortingPage.FieldWithUsercodePlaceholder.SendKeys(Config.UserBarCode);
                        sortingPage.FieldWithUsercodePlaceholder.SendKeys(Keys.Enter);
                    }
                }
                if (sortingPage.CompleteAddSamplesButton.Exists() && !sortingPage.CompleteAddSamplesButtonDisable.Disabled)
                {
                    sortingPage.CompleteAddSamplesButton.Click();
                    sortingPage.ConfirmEndOfSamplesButton.Click();
                }
                else if (sortingPage.CompleteAddSamplesButton.Exists() && sortingPage.CompleteAddSamplesButtonDisable.Disabled)
                {
                    sortingPage.CodeInputField.SendKeys(Config.UserBarCode);  //
                    sortingPage.CodeInputField.SendKeys(Keys.Enter);
                }
                else if (sortingPage.CompleteBatchButton.Exists())
                {
                    sortingPage.CompleteBatchButton.Click();
                    sortingPage.ConfirmEndOfSamplesButton.Click();
                }
                System.Threading.Thread.Sleep(500);

                if (sortingPage.CodeInputField.Exists())
                {
                    sortingPage.CodeInputField.WaitForAvailability();
                    sortingPage.CodeInputField.WaitForVisibility();
                    sortingPage.CodeInputField.WaitForClickability();
                }
                // Подтверждается раскапывание ВК
                if (VKName[0] != "")
                {
                    foreach (string j in VKName)
                    {
                        sortingPage.SetValueOfKM(j);
                        Debug.WriteLine("Раскапан " + j);
                    }
                    //     sortingPage.SetValueOfKM(VKName);
                }
                // Подтверждается раскапывание ОКО
                if (OKOName[0] != "")
                {
                    foreach (string k in OKOName)
                    {
                        sortingPage.SetValueOfKM(k);
                        Debug.WriteLine("Раскапан " + k);
                    }
                }
                // Подтверждается раскапывание ПКО
                if (PKOName[0] != "")
                {
                    foreach (string m in PKOName)
                    {
                        sortingPage.SetValueOfKM(m);
                        Debug.WriteLine(DateTime.Now + "Раскапан " + m);
                    }
                }
            }
        }
 public void ThenIRemoveAllSchedulesFromDictionaries()
 {
     MSDatabaseConnector _msBDConnectorLW = new MSDatabaseConnector(Config.MSDbLW);
     string command = $@"DELETE FROM[BatchDropperStab].[dbo].[Schedules]";
     var    result  = _msBDConnectorLW.NonQueryExecutor(command);
 }
Exemplo n.º 30
0
        public void ThenIFill_OutTheSorting_PlanchetBySamplesOfTestWithBiomaterialAndLocationAndVKAndOKOAndPKO(int count, string own, List <String> testname, string bm, string location, List <String> VKName, List <String> OKOName, List <String> PKOName)
        {
            MSDatabaseConnector _msBDConnectorLW = new MSDatabaseConnector(Config.MSDbLW);
            //if(testname[0] != "")
            int countOfTests = testname.Count();

            string command = "";

            if (own == "only") // для случая, когда образец назначен ТОЛЬКО на тест/тесты
            {
                if (countOfTests == 1)
                {
                    command = $@"USE LW08v6
                 select TOP({count}) s.TEXT_ID
                 from
                 (select SAMPLE_NUMBER, count(ANALYSIS) as TestCommonCount
                 from [LW08v6].[dbo].[TEST] t with (nolock) 
                 group by SAMPLE_NUMBER
                 having count(ANALYSIS) = 1) MonoSamples
                 join TEST t on t.SAMPLE_NUMBER = MonoSamples.SAMPLE_NUMBER
                 join SAMPLE s on S.SAMPLE_NUMBER = t.SAMPLE_NUMBER
                 where t.status='I' and s.TEMPLATE = 'smp_in' and s.status='I' 
                 and s.LOCATION = '{location}' and t.ANALYSIS='{testname[0]}' and s.SAMPLE_TYPE ='{bm}'";
                }
                if (countOfTests == 2)
                {
                    command = $@"USE LW08v6
                 select TOP({count}) s.TEXT_ID as Sample
                 from TEST t
                 join SAMPLE s on t.SAMPLE_NUMBER = s.SAMPLE_NUMBER
                 where  t.status='I' and s.TEMPLATE = 'smp_in' and s.status='I' and s.LOCATION = '{location}' and s.SAMPLE_TYPE ='{bm}'
                 and t.ANALYSIS = '{testname[0]}' 
                 and exists (select top 1 1 from TEST t1 where  t1.SAMPLE_NUMBER = s.SAMPLE_NUMBER
                 and t1.ANALYSIS = '{testname[1]}') 
                 and not exists (select top 1 1 from TEST t1 where  t1.SAMPLE_NUMBER = s.SAMPLE_NUMBER
                 and t1.ANALYSIS not in  ('{testname[0]}', '{testname[1]}'))";
                }
            }
            if (countOfTests == 2) // если 2 теста в коллекции, выполняем скрипт:
            {
                command = $@"USE LW08v6
                select TOP({count}) Sample
                from
                (select s.TEXT_ID as Sample, t.ANALYSIS as Test
                from TEST t
                join SAMPLE s on t.SAMPLE_NUMBER = s.SAMPLE_NUMBER
                where  t.status='I' and s.TEMPLATE = 'smp_in' and s.status='I' and s.LOCATION = '{location}' and s.SAMPLE_TYPE ='{bm}'
                and t.ANALYSIS in ('{testname[0]}', '{testname[1]}')
                group by TEXT_ID, ANALYSIS) sub
                group by Sample
                having count(Test) = 2";
            }
            else if (countOfTests == 1) // если 1 тест в коллекции, выполняем скрипт:
            {
                command = $@"USE LW08v6
                SELECT TOP({count}) s.TEXT_ID FROM test t with (nolock)
                inner join SAMPLE s on t.SAMPLE_NUMBER=s.SAMPLE_NUMBER
                WHERE t.status='I' and t.ANALYSIS='{testname[0]}' 
                and s.TEMPLATE = 'smp_in' and s.status='I' and s.SAMPLE_TYPE ='{bm}' 
                and s.LOCATION = '{location}'";
            }
            else if (countOfTests == 3) // если 3 теста в коллекции, выполняем скрипт:
            {
                command = $@"USE LW08v6
                select TOP ({count})Sample
                from
                (select s.TEXT_ID as Sample, t.ANALYSIS as Test
                from TEST t
                join SAMPLE s on t.SAMPLE_NUMBER = s.SAMPLE_NUMBER
                where  t.status='I' and s.TEMPLATE = 'smp_in' and s.status='I' and s.LOCATION = '{location}' and s.SAMPLE_TYPE ='{bm}'
                and t.ANALYSIS in ('{testname[0]}', '{testname[1]}','{testname[2]}')
                group by TEXT_ID, ANALYSIS) sub
                group by Sample
                having count(Test) = 3";
            }

            var result = _msBDConnectorLW.QueryExecutor(command);
            BDIsolationDNKPage bDIsolationDNKPage = new BDIsolationDNKPage();

            bDIsolationDNKPage.AddSample(result);
            bDIsolationDNKPage.TakeThisSamples();

            if (VKName[0] != "") // если есть ВК - раскапать
            {
                foreach (string v in VKName)
                {
                    bDIsolationDNKPage.AddControlMaterial(v);
                }
            }
            if (bDIsolationDNKPage.NeedActiveTestTubes()) // раскапывать ВК в пробирки пока есть поле "ввести ШК пробы"
            {
                foreach (string n in result)
                {
                    bDIsolationDNKPage.AddActiveIsolationControl(n);
                }
                foreach (string o in OKOName)
                {
                    bDIsolationDNKPage.AddActiveIsolationControl(o);
                }
                foreach (string p in PKOName)
                {
                    bDIsolationDNKPage.AddActiveIsolationControl(p);
                }
            }
            if (OKOName[0] != "") // если есть ОКО - раскапать
            {
                foreach (string o in OKOName)
                {
                    bDIsolationDNKPage.ControlsBoardCodeEnter(o);
                }
            }
            if (PKOName[0] != "") // если есть ПКО - раскапать
            {
                foreach (string p in PKOName)
                {
                    bDIsolationDNKPage.ControlsBoardCodeEnter(p);
                }
            }
        }