} //Протокол прокси FTP public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для справочников. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Reference93( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Code ,_Description ,_Fld1375RRef ,_Fld1378 ,_Fld1379 ,_Fld1380 ,_Fld1381 ,_Fld1382 ,_Fld1383 ,_Fld1384 ,_Fld1404 ,_Fld1405 ,_Fld1406 ,_Fld1407 ,_Fld1408 ,_Fld1412 ,_Fld19456 ,_Fld19462 ,_Fld1411 ,_Fld1409RRef ,_Fld1410 ,_Fld19455 ,_Fld21242 ,_Fld21243 ,_Fld21244 ,_Fld21245 ,_Fld21246 ,_Fld21247 ,_Fld21248 ,_Fld21249 ,_Fld21250 ,_Fld21251 ,_Fld21252 ,_Fld21253 ,_Fld21254 ,_Fld21256 ,_Fld21257 ,_Fld21259RRef ,_Fld21260 ,_Fld21262 ,_Fld21263 ,_Fld21267 ,_Fld21268 ,_Fld21265 ,_Fld22936 ,_Fld22937 ,_Fld22938 ,_Fld22939 ,_Fld22940) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Предопределенный ,@Код ,@Наименование ,@ТипНастройки ,@ПроизводитьПриемСообщений ,@ПроизводитьОтправкуСообщений ,@КоличествоЭлементовВТранзакцииНаВыгрузкуДанных ,@КоличествоЭлементовВТранзакцииНаЗагрузкуДанных ,@ВыполнятьАрхивациюФайловОбмена ,@ПарольНаОтправку ,@ПарольНаПрием ,@КаталогОбменаИнформацией ,@FTPАдресОбмена ,@ПортFTPСоединения ,@ПользовательFTPСоединения ,@ПарольFTPСоединения ,@Комментарий ,@МаксимальныйРазмерОтправляемогоПолучаемогоПакетаЧерезFTP ,@ПассивноеFTPСоединение ,@ПочтовыйАдресПолучателя ,@УчетнаяЗаписьПриемаОтправкиСообщений ,@АвтоматическиЗакачиватьПочтуПриОбмене ,@МаксимальныйРазмерОтправляемогоПакетаЧерезПочту ,@ПравилаОбмена ,@ПравилаОбменаДляПриемника ,@ДобавлениеОбъектовИзФоновогоОбмена ,@КоличествоОбъектовДляФоновогоОбмена ,@OnLineОбмен ,@ТипИнформационнойБазыДляПодключения ,@КаталогИнформационнойБазыДляПодключения ,@ИмяСервераИнформационнойБазыДляПодключения ,@ИмяИнформационнойБазыНаСервереДляПодключения ,@АутентификацияWindowsИнформационнойБазыДляПодключения ,@ПользовательИнформационнойБазыДляПодключения ,@ПарольИнформационнойБазыДляПодключения ,@ВерсияПлатформыИнформационнойБазыДляПодключения ,@РежимОтладкиOnLineОбмена ,@ИмяФайлаПротоколаОбменаOnLineОбмен ,@УчетнаяЗаписьОтправкиСообщенияОбОшибке ,@АдресДляОтправкиСообщенийОбОшибке ,@ПослеОшибкиОтложенногоПроведенияПрекратитьОперации ,@КоличествоОшибокОтложенногоПроведенияДляПрекращенияОперации ,@ВыполнятьДействияПодПолнымиПравами ,@ПроизводитьОтправкуТолькоПриУспешномПриеме ,@ВыполнитьОтложенноеПроведениеДокументовПоРасписанию ,@ПользовательПроксиFTP ,@ПарольПроксиFTP ,@СерверПроксиFTP ,@ПортПроксиFTP ,@ПротоколПроксиFTP)" ; } else { Команда.CommandText = @" Update _Reference93 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_IsMetadata = @Предопределенный ,_Code = @Код ,_Description = @Наименование ,_Fld1375RRef = @ТипНастройки ,_Fld1378 = @ПроизводитьПриемСообщений ,_Fld1379 = @ПроизводитьОтправкуСообщений ,_Fld1380 = @КоличествоЭлементовВТранзакцииНаВыгрузкуДанных ,_Fld1381 = @КоличествоЭлементовВТранзакцииНаЗагрузкуДанных ,_Fld1382 = @ВыполнятьАрхивациюФайловОбмена ,_Fld1383 = @ПарольНаОтправку ,_Fld1384 = @ПарольНаПрием ,_Fld1404 = @КаталогОбменаИнформацией ,_Fld1405 = @FTPАдресОбмена ,_Fld1406 = @ПортFTPСоединения ,_Fld1407 = @ПользовательFTPСоединения ,_Fld1408 = @ПарольFTPСоединения ,_Fld1412 = @Комментарий ,_Fld19456 = @МаксимальныйРазмерОтправляемогоПолучаемогоПакетаЧерезFTP ,_Fld19462 = @ПассивноеFTPСоединение ,_Fld1411 = @ПочтовыйАдресПолучателя ,_Fld1409RRef = @УчетнаяЗаписьПриемаОтправкиСообщений ,_Fld1410 = @АвтоматическиЗакачиватьПочтуПриОбмене ,_Fld19455 = @МаксимальныйРазмерОтправляемогоПакетаЧерезПочту ,_Fld21242 = @ПравилаОбмена ,_Fld21243 = @ПравилаОбменаДляПриемника ,_Fld21244 = @ДобавлениеОбъектовИзФоновогоОбмена ,_Fld21245 = @КоличествоОбъектовДляФоновогоОбмена ,_Fld21246 = @OnLineОбмен ,_Fld21247 = @ТипИнформационнойБазыДляПодключения ,_Fld21248 = @КаталогИнформационнойБазыДляПодключения ,_Fld21249 = @ИмяСервераИнформационнойБазыДляПодключения ,_Fld21250 = @ИмяИнформационнойБазыНаСервереДляПодключения ,_Fld21251 = @АутентификацияWindowsИнформационнойБазыДляПодключения ,_Fld21252 = @ПользовательИнформационнойБазыДляПодключения ,_Fld21253 = @ПарольИнформационнойБазыДляПодключения ,_Fld21254 = @ВерсияПлатформыИнформационнойБазыДляПодключения ,_Fld21256 = @РежимОтладкиOnLineОбмена ,_Fld21257 = @ИмяФайлаПротоколаОбменаOnLineОбмен ,_Fld21259RRef = @УчетнаяЗаписьОтправкиСообщенияОбОшибке ,_Fld21260 = @АдресДляОтправкиСообщенийОбОшибке ,_Fld21262 = @ПослеОшибкиОтложенногоПроведенияПрекратитьОперации ,_Fld21263 = @КоличествоОшибокОтложенногоПроведенияДляПрекращенияОперации ,_Fld21267 = @ВыполнятьДействияПодПолнымиПравами ,_Fld21268 = @ПроизводитьОтправкуТолькоПриУспешномПриеме ,_Fld21265 = @ВыполнитьОтложенноеПроведениеДокументовПоРасписанию ,_Fld22936 = @ПользовательПроксиFTP ,_Fld22937 = @ПарольПроксиFTP ,_Fld22938 = @СерверПроксиFTP ,_Fld22939 = @ПортПроксиFTP ,_Fld22940 = @ПротоколПроксиFTP Where _IDRRef = @Ссылка" ; } Команда.Parameters.AddWithValue("Ссылка", Ссылка.ToByteArray()); /*Команда.Parameters.AddWithValue("Версия", Версия);*/ Команда.Parameters.AddWithValue("ПометкаУдаления", ПометкаУдаления); Команда.Parameters.AddWithValue("Предопределенный", Предопределенный); Команда.Parameters.AddWithValue("Код", Код); Команда.Parameters.AddWithValue("Наименование", Наименование); Команда.Parameters.AddWithValue("ТипНастройки", ТипНастройки.Ключ()); Команда.Parameters.AddWithValue("ПроизводитьПриемСообщений", ПроизводитьПриемСообщений); Команда.Parameters.AddWithValue("ПроизводитьОтправкуСообщений", ПроизводитьОтправкуСообщений); Команда.Parameters.AddWithValue("КоличествоЭлементовВТранзакцииНаВыгрузкуДанных", КоличествоЭлементовВТранзакцииНаВыгрузкуДанных); Команда.Parameters.AddWithValue("КоличествоЭлементовВТранзакцииНаЗагрузкуДанных", КоличествоЭлементовВТранзакцииНаЗагрузкуДанных); Команда.Parameters.AddWithValue("ВыполнятьАрхивациюФайловОбмена", ВыполнятьАрхивациюФайловОбмена); Команда.Parameters.AddWithValue("ПарольНаОтправку", ПарольНаОтправку); Команда.Parameters.AddWithValue("ПарольНаПрием", ПарольНаПрием); Команда.Parameters.AddWithValue("КаталогОбменаИнформацией", КаталогОбменаИнформацией); Команда.Parameters.AddWithValue("FTPАдресОбмена", FTPАдресОбмена); Команда.Parameters.AddWithValue("ПортFTPСоединения", ПортFTPСоединения); Команда.Parameters.AddWithValue("ПользовательFTPСоединения", ПользовательFTPСоединения); Команда.Parameters.AddWithValue("ПарольFTPСоединения", ПарольFTPСоединения); Команда.Parameters.AddWithValue("Комментарий", Комментарий); Команда.Parameters.AddWithValue("МаксимальныйРазмерОтправляемогоПолучаемогоПакетаЧерезFTP", МаксимальныйРазмерОтправляемогоПолучаемогоПакетаЧерезFTP); Команда.Parameters.AddWithValue("ПассивноеFTPСоединение", ПассивноеFTPСоединение); Команда.Parameters.AddWithValue("ПочтовыйАдресПолучателя", ПочтовыйАдресПолучателя); Команда.Parameters.AddWithValue("УчетнаяЗаписьПриемаОтправкиСообщений", УчетнаяЗаписьПриемаОтправкиСообщений.Ссылка); Команда.Parameters.AddWithValue("АвтоматическиЗакачиватьПочтуПриОбмене", АвтоматическиЗакачиватьПочтуПриОбмене); Команда.Parameters.AddWithValue("МаксимальныйРазмерОтправляемогоПакетаЧерезПочту", МаксимальныйРазмерОтправляемогоПакетаЧерезПочту); Команда.Parameters.AddWithValue("ПравилаОбмена", new byte[0]); Команда.Parameters.AddWithValue("ПравилаОбменаДляПриемника", new byte[0]); Команда.Parameters.AddWithValue("ДобавлениеОбъектовИзФоновогоОбмена", ДобавлениеОбъектовИзФоновогоОбмена); Команда.Parameters.AddWithValue("КоличествоОбъектовДляФоновогоОбмена", КоличествоОбъектовДляФоновогоОбмена); Команда.Parameters.AddWithValue("OnLineОбмен", OnLineОбмен); Команда.Parameters.AddWithValue("ТипИнформационнойБазыДляПодключения", ТипИнформационнойБазыДляПодключения); Команда.Parameters.AddWithValue("КаталогИнформационнойБазыДляПодключения", КаталогИнформационнойБазыДляПодключения); Команда.Parameters.AddWithValue("ИмяСервераИнформационнойБазыДляПодключения", ИмяСервераИнформационнойБазыДляПодключения); Команда.Parameters.AddWithValue("ИмяИнформационнойБазыНаСервереДляПодключения", ИмяИнформационнойБазыНаСервереДляПодключения); Команда.Parameters.AddWithValue("АутентификацияWindowsИнформационнойБазыДляПодключения", АутентификацияWindowsИнформационнойБазыДляПодключения); Команда.Parameters.AddWithValue("ПользовательИнформационнойБазыДляПодключения", ПользовательИнформационнойБазыДляПодключения); Команда.Parameters.AddWithValue("ПарольИнформационнойБазыДляПодключения", ПарольИнформационнойБазыДляПодключения); Команда.Parameters.AddWithValue("ВерсияПлатформыИнформационнойБазыДляПодключения", ВерсияПлатформыИнформационнойБазыДляПодключения); Команда.Parameters.AddWithValue("РежимОтладкиOnLineОбмена", ежимОтладкиOnLineОбмена); Команда.Parameters.AddWithValue("ИмяФайлаПротоколаОбменаOnLineОбмен", ИмяФайлаПротоколаОбменаOnLineОбмен); Команда.Parameters.AddWithValue("УчетнаяЗаписьОтправкиСообщенияОбОшибке", УчетнаяЗаписьОтправкиСообщенияОбОшибке.Ссылка); Команда.Parameters.AddWithValue("АдресДляОтправкиСообщенийОбОшибке", АдресДляОтправкиСообщенийОбОшибке); Команда.Parameters.AddWithValue("ПослеОшибкиОтложенногоПроведенияПрекратитьОперации", ПослеОшибкиОтложенногоПроведенияПрекратитьОперации); Команда.Parameters.AddWithValue("КоличествоОшибокОтложенногоПроведенияДляПрекращенияОперации", КоличествоОшибокОтложенногоПроведенияДляПрекращенияОперации); Команда.Parameters.AddWithValue("ВыполнятьДействияПодПолнымиПравами", ВыполнятьДействияПодПолнымиПравами); Команда.Parameters.AddWithValue("ПроизводитьОтправкуТолькоПриУспешномПриеме", ПроизводитьОтправкуТолькоПриУспешномПриеме); Команда.Parameters.AddWithValue("ВыполнитьОтложенноеПроведениеДокументовПоРасписанию", ВыполнитьОтложенноеПроведениеДокументовПоРасписанию); Команда.Parameters.AddWithValue("ПользовательПроксиFTP", ПользовательПроксиFTP); Команда.Parameters.AddWithValue("ПарольПроксиFTP", ПарольПроксиFTP); Команда.Parameters.AddWithValue("СерверПроксиFTP", СерверПроксиFTP); Команда.Parameters.AddWithValue("ПортПроксиFTP", ПортПроксиFTP); Команда.Parameters.AddWithValue("ПротоколПроксиFTP", ПротоколПроксиFTP); Команда.ExecuteNonQuery(); } } }
} //Краткий состав настройки public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для справочников. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Reference19651( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Description ,_Fld19877RRef ,_Fld19879 ,_Fld19880 ,_Fld19881 ,_Fld19882 ,_Fld19883 ,_Fld19884 ,_Fld26609) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Предопределенный ,@Наименование ,@ТипНастройки ,@СохранятьАвтоматически ,@ИспользоватьПриОткрытии ,@СохранятьПериод ,@ОткрыватьПриЗапуске ,@ХранилищеНастроек ,@Описание ,@КраткийСоставНастройки)" ; } else { Команда.CommandText = @" Update _Reference19651 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_IsMetadata = @Предопределенный ,_Description = @Наименование ,_Fld19877RRef = @ТипНастройки ,_Fld19879 = @СохранятьАвтоматически ,_Fld19880 = @ИспользоватьПриОткрытии ,_Fld19881 = @СохранятьПериод ,_Fld19882 = @ОткрыватьПриЗапуске ,_Fld19883 = @ХранилищеНастроек ,_Fld19884 = @Описание ,_Fld26609 = @КраткийСоставНастройки Where _IDRRef = @Ссылка" ; } Команда.Parameters.AddWithValue("Ссылка", Ссылка.ToByteArray()); /*Команда.Parameters.AddWithValue("Версия", Версия);*/ Команда.Parameters.AddWithValue("ПометкаУдаления", ПометкаУдаления); Команда.Parameters.AddWithValue("Предопределенный", Предопределенный); Команда.Parameters.AddWithValue("Наименование", Наименование); Команда.Parameters.AddWithValue("ТипНастройки", ТипНастройки.Ключ()); Команда.Parameters.AddWithValue("СохранятьАвтоматически", СохранятьАвтоматически); Команда.Parameters.AddWithValue("ИспользоватьПриОткрытии", ИспользоватьПриОткрытии); Команда.Parameters.AddWithValue("СохранятьПериод", СохранятьПериод); Команда.Parameters.AddWithValue("ОткрыватьПриЗапуске", ОткрыватьПриЗапуске); Команда.Parameters.AddWithValue("ХранилищеНастроек", new byte[0]); Команда.Parameters.AddWithValue("Описание", Описание); Команда.Parameters.AddWithValue("КраткийСоставНастройки", КраткийСоставНастройки); Команда.ExecuteNonQuery(); } } }