private void AddMaterialInMssql() { var mssqlServer = Properties.Settings.Default.SqlServerNu65; var mssqlDb = Properties.Settings.Default.SqlDbNu65Db; try { using (var mssqlConnection = DbControl.GetConnection(mssqlServer, mssqlDb)) { mssqlConnection.TryConnectOpen(); var flagMsSql = MaterialsService.IsDublicateMssql(_selectedMaterial.CodeMaterial, mssqlConnection); if (flagMsSql) { const MessageBoxImage messageType = MessageBoxImage.Error; const MessageBoxButton messageButtons = MessageBoxButton.OK; const string validationHeader = PageLiterals.HeaderValidation; MessageBox.Show($"Материал с кодом [{_selectedMaterial.CodeMaterial}] уже есть в базе MsSql", validationHeader, messageButtons, messageType); } else { using (var mssqlTransaction = mssqlConnection.BeginTransaction()) { var id = MaterialsService.InsertMssql(_selectedMaterial.CodeMaterial, _selectedMaterial.Name, _selectedMaterial.Gost, _selectedMaterial.Profile, mssqlConnection, mssqlTransaction); _selectedMaterial.Id = id; const MessageBoxImage messageType = MessageBoxImage.Information; const MessageBoxButton messageButtons = MessageBoxButton.OK; const string header = "Добавление"; string message = $"Материал с кодом [{_selectedMaterial.CodeMaterial}] добавлен в базу MsSql."; var dbFolder = Properties.Settings.Default.FoxproDbFolder_Fox60_Arm_Base; using (var oleDbConnection = DbControl.GetConnection(dbFolder)) { oleDbConnection.TryConnectOpen(); // Проверка кодировок таблиц и соединения с таблицами FoxPro // Проверка соединений требуется, так как транзации с этими таблицами не работают oleDbConnection.VerifyInstalledEncoding("prdsetmc"); //MaterialsStorageFoxpro.TestConnectionPrdsetmc(oleDbConnection); var flagFoxPro = MaterialsService.IsDublicateFoxPro(_selectedMaterial.CodeMaterial, oleDbConnection); if (!flagFoxPro) { MaterialsService.InsertFoxpro(oleDbConnection, _selectedMaterial); message += " \nМатериал отсутствовал в [prdsetmc] и был добавлен."; } } // Подтверждение транзакции MSSQL mssqlTransaction.Commit(); DialogResult = true; MessageBox.Show(message, header, messageButtons, messageType); } } } } catch (StorageException ex) { Common.ShowDetailExceptionMessage(ex); } }