private bool CreateEpitStructure()
        {
            string nameOfEpitStructureTable = TbEpitStructure.Name(textBoxParcelNumber.Text + "_" + textBoxWaferNumber.Text);

            // создаем имя структуры
            string nameForUser = GetEpitStack();
            // делаем запись в таблице 'TbEpitHost'
            SqlRecord recEpitHost = new SqlRecord(TbEpitHost.Name, TbEpitHost.NameOfEpitStructureTable, nameOfEpitStructureTable);
            recEpitHost.SetField(TbEpitHost.UserName, nameForUser);
            recEpitHost.SetField(TbEpitHost.TimeOfCreation, DateTime.Now);
            recEpitHost.Save();

            // создаем и заполняем таблицу 'TbEpitStructure'
            SqlTable tbEpitStruct = new SqlTable(nameOfEpitStructureTable);
            if (tbEpitStruct.Exist)
                tbEpitStruct.Remove();
            tbEpitStruct.Create(TbEpitStructure.Number, typeof (int));

            for (int i = 0; i < dataGridViewLayers.RowCount - 1; i++)
            {
                int num = dataGridViewLayers.RowCount - i - 2;

                SqlRecord recEpitStruct = tbEpitStruct.GetRecord(TbEpitStructure.Number, num);
                recEpitStruct.CreateFieldsIfNotExist = true;

                // валидация данных
                double thickness = 0,
                       conc = 0;
                double? readThickness = ClientLibrary.DoubleParse(dataGridViewLayers.Rows[i].Cells[3].Value.ToString()),
                        readConc = ClientLibrary.DoubleParse(dataGridViewLayers.Rows[i].Cells[4].Value.ToString());
                if (readThickness == null || readConc == null)
                {
                    tbEpitStruct.Remove();
                    recEpitHost.Remove();
                    return false;
                }
                thickness = (double) readThickness;
                conc = (double) readConc;

                recEpitStruct.SetField(TbEpitStructure.TypeOfLayer, dataGridViewLayers.Rows[i].Cells[1].Value.ToString());
                recEpitStruct.SetField(TbEpitStructure.Material, dataGridViewLayers.Rows[i].Cells[2].Value.ToString());
                recEpitStruct.SetField(TbEpitStructure.Thickness, thickness);
                recEpitStruct.SetField(TbEpitStructure.Concentration, conc);
                recEpitStruct.Save();
            }

            return true;
        }
        String SaveSetOfMasks()
        {
            string nameSetOfMasks = "";
            // корректно вводим в базу данных id - имя комплекта фотошаблонов
            switch (buttonSaveMasks.Text)
            {
                case "Создать":
                    {
                        if (textBoxNameSetOfMasks.Text == "")
                            return "Вы не ввели информацию о названии комплекта фотошаблонов";
                        nameSetOfMasks = textBoxNameSetOfMasks.Text;

                        _newRecord = new SqlRecord(TbSetOfMasks.Name, TbSetOfMasks.NameOfSetOfMasksId, nameSetOfMasks);
                        if (_newRecord.Exist)
                            return "Указанный комплект фотошаблонов уже существует";

                        _tbMasks = new SqlTable(TbMasks.GetName(nameSetOfMasks));
                        CreateSetOfMaskTable();

                        break;
                    }
                case "Cохранить":
                    {
                        if (textBoxNameSetOfMasks.Text == "")
                            return "Вы не ввели информацию о названии комплекта фотошаблонов";
                        nameSetOfMasks = textBoxNameSetOfMasks.Text;

                        _newRecord.Remove();
                        _newRecord = new SqlRecord(TbSetOfMasks.Name, TbSetOfMasks.NameOfSetOfMasksId, nameSetOfMasks);
                        if (_newRecord.Exist)
                            return "Указанный комплект фотошаблонов уже существует";

                        _tbMasks.Remove();
                        _tbMasks = new SqlTable(TbMasks.GetName(nameSetOfMasks));
                        CreateSetOfMaskTable();

                        break;
                    }
            }

            // если выбраны файлы и папки, то заливаем их в БД
            if (_pathToTtWord != "")
            {
                string fileId = GetFileID(textBoxTTWord.Text, nameSetOfMasks + " @ TT_word");
                ClientLibrary.UploadFileToServer(_pathToTtWord, fileId);
                _newRecord.SetField(TbSetOfMasks.RecordIdofTrWordFile, fileId);
            }
            if (_pathToTtScan != "")
            {
                string fileId = GetFileID(textBoxTTScan.Text, nameSetOfMasks + " @ TT_scan");
                ClientLibrary.UploadFileToServer(_pathToTtScan, fileId);
                _newRecord.SetField(TbSetOfMasks.RecordIdofTrScanFile, fileId);
            }
            if (_pathToMap != "")
            {
                string fileId = GetFileID(textBoxMap.Text, nameSetOfMasks + " @ TT_map");
                ClientLibrary.UploadFileToServer(_pathToMap, fileId);
                _newRecord.SetField(TbSetOfMasks.RecordIdOfMapFile, fileId);
            }
            if (_pathToAttachedFile != "")
            {
                string fileId = GetFileID(textBoxAttachedFile.Text, nameSetOfMasks + " @ attached_file");
                ClientLibrary.UploadFileToServer(_pathToAttachedFile, fileId);
                _newRecord.SetField(TbSetOfMasks.RecordIdOfAttachedFile, fileId);
            }

            // архивация папки и загрузка архива в БД
            if (_pathToFolderWithMasks != "")
            {
                string programFolder = Path.GetDirectoryName(Application.ExecutablePath);
                string pathToSaveFolder = String.Format("{0}\\cache {1}", programFolder,
                    ClientLibrary.GetAuthorOfComputer());

                string destination = pathToSaveFolder + "\\" + Path.GetFileName(_pathToFolderWithMasks) + ".zip";
                FileInfo fi = new FileInfo(destination);
                if (fi.Exists)
                    fi.Delete();

                ZipFile.CreateFromDirectory(_pathToFolderWithMasks, destination, CompressionLevel.NoCompression, false, Encoding.UTF8);
                string fileId = GetFileID(textBoxFolderWithMasks.Text, nameSetOfMasks + " @ folder_masks") + ".zip";
                ClientLibrary.UploadFileToServer(destination, fileId);

                _newRecord.SetField(TbSetOfMasks.RecordIdOfFolderWithMasks, fileId);
            }

            // вводим в базу данных остальную информацию
            _newRecord.SetField(TbSetOfMasks.Description, richTextBoxComment.Text);
            _newRecord.SetField(TbSetOfMasks.Technology, comboBoxTechnology.Text);
            _newRecord.SetField(TbSetOfMasks.TimeOfRecordCreation, dateTimePickerRecordSetOfMasks.Value);
            _newRecord.SetField(TbSetOfMasks.Developer, comboBoxDeveloper.Text);
            _newRecord.SetField(TbSetOfMasks.Author, cbAuthor.Text);
            _newRecord.SetField(TbSetOfMasks.NameOfTableWithMasks, TbMasks.GetName(nameSetOfMasks));
            _newRecord.SetField(TbSetOfMasks.TechProc, cbTechProc.Text);
            _newRecord.SetField(TbSetOfMasks.TimeOfSetOfMasksCreation, dtpTimeOfSetOfMasksCreation.Value);

            _newRecord.Save();

            return "correct";
        }