V82.ДокументыОбъект.ЭлектронноеПисьмо.Записать C# (CSharp) Method

Записать() public method

public Записать ( ) : void
return void
        public void Записать()
        {
            //Установка блокировки элемента на горизантально масштабированный кластер.
            //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки.
            //Выделение сервиса для блокировки элемента и генерации кода
            //Выполнение операций контроля без обращений к sql-серверу.
            //Контроль конфликта блокировок.
            //Контроль загрузки булкинсертом гетерогенной коллекции.
            //Контроль уникальности кода для Документов.
            //Контроль уникальности номера для документов, в границах префикса.
            //Контроль владельца, он не может быть группой.
            //Контроль владельца он должен быть задан.
            //Контроль родителя он должен быть группой.
            //Контроль количества уровней, должен соотвествовать метаданным.
            //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника.
            //Контроль уникальности ссылки
            //Контроль зацикливания
            //Опционально контроль битых ссылок.
            //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента.
            using (var Подключение = new SqlConnection(СтрокаСоединения))
            {
                Подключение.Open();
                using (var Команда = Подключение.CreateCommand())
                {
                    if(_ЭтоНовый)
                    {
                        Команда.CommandText = @"
                        Insert Into _Document497(
                        _IDRRef
                        /*,_Version*/
                        ,_Marked
                        ,_IsMetadata
                        ,_Number
                        ,_Fld12718RRef
                        ,_Fld12719RRef
                        ,_Fld12720
                        ,_Fld12721
                        ,_Fld22325RRef
                        ,_Fld12722
                        ,_Fld12749
                        ,_Fld12723
                        ,_Fld12724
                        ,_Fld12725
                        ,_Fld12750
                        ,_Fld12726
                        ,_Fld12727
                        ,_Fld12728
                        ,_Fld12729
                        ,_Fld12730
                        ,_Fld12731
                        ,_Fld12733
                        ,_Fld12734RRef
                        ,_Fld12735
                        ,_Fld12736
                        ,_Fld12737
                        ,_Fld12751RRef
                        ,_Fld12738
                        ,_Fld12739
                        ,_Fld12752
                        ,_Fld12740
                        ,_Fld12741
                        ,_Fld12742RRef
                        ,_Fld12743RRef
                        ,_Fld12744
                        ,_Fld12745
                        ,_Fld12746RRef)
                        Values(
                        @Ссылка
                        /*,@Версия*/
                        ,@ПометкаУдаления
                        ,@Номер
                        ,@ВидТекстаПисьма
                        ,@ГруппаУчетнойЗаписи
                        ,@ДатаОтправления
                        ,@ДатаТранспорта
                        ,@ЗаявкаКандидата
                        ,@ЕстьВложения
                        ,@ЗаголовокПисьма
                        ,@ИдентификаторПисьма
                        ,@ИмяКомпьютераРедактированияХТМЛТекста
                        ,@ИмяФайлаРедактированияХТМЛТекста
                        ,@КодировкаПисьма
                        ,@Комментарий
                        ,@Кому
                        ,@КомуПредставление
                        ,@Копии
                        ,@КопииПредставление
                        ,@НеРассмотрено
                        ,@Ответ
                        ,@Ответственный
                        ,@ОтправительАдресЭлектроннойПочты
                        ,@ОтправительИмя
                        ,@ОтправительПредставление
                        ,@Оформление
                        ,@Переадресация
                        ,@ПочтовоеСообщение
                        ,@ПредметКонтакта
                        ,@РассмотретьПосле
                        ,@СкрытыеКопии
                        ,@СостояниеПотомкаПисьма
                        ,@СтатусПисьма
                        ,@ТекстПисьма
                        ,@Тема
                        ,@УчетнаяЗапись)";
                    }
                    else
                    {
                        Команда.CommandText = @"
                        Update _Document497
                        Set
                        /*_IDRRef	= @Ссылка*/
                        /*,_Version	= @Версия*/
                        _Marked	= @ПометкаУдаления
                        ,_Number	= @Номер
                        ,_Fld12718RRef	= @ВидТекстаПисьма
                        ,_Fld12719RRef	= @ГруппаУчетнойЗаписи
                        ,_Fld12720	= @ДатаОтправления
                        ,_Fld12721	= @ДатаТранспорта
                        ,_Fld22325RRef	= @ЗаявкаКандидата
                        ,_Fld12722	= @ЕстьВложения
                        ,_Fld12749	= @ЗаголовокПисьма
                        ,_Fld12723	= @ИдентификаторПисьма
                        ,_Fld12724	= @ИмяКомпьютераРедактированияХТМЛТекста
                        ,_Fld12725	= @ИмяФайлаРедактированияХТМЛТекста
                        ,_Fld12750	= @КодировкаПисьма
                        ,_Fld12726	= @Комментарий
                        ,_Fld12727	= @Кому
                        ,_Fld12728	= @КомуПредставление
                        ,_Fld12729	= @Копии
                        ,_Fld12730	= @КопииПредставление
                        ,_Fld12731	= @НеРассмотрено
                        ,_Fld12733	= @Ответ
                        ,_Fld12734RRef	= @Ответственный
                        ,_Fld12735	= @ОтправительАдресЭлектроннойПочты
                        ,_Fld12736	= @ОтправительИмя
                        ,_Fld12737	= @ОтправительПредставление
                        ,_Fld12751RRef	= @Оформление
                        ,_Fld12738	= @Переадресация
                        ,_Fld12739	= @ПочтовоеСообщение
                        ,_Fld12752	= @ПредметКонтакта
                        ,_Fld12740	= @РассмотретьПосле
                        ,_Fld12741	= @СкрытыеКопии
                        ,_Fld12742RRef	= @СостояниеПотомкаПисьма
                        ,_Fld12743RRef	= @СтатусПисьма
                        ,_Fld12744	= @ТекстПисьма
                        ,_Fld12745	= @Тема
                        ,_Fld12746RRef	= @УчетнаяЗапись
                        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("КомуПредставление", КомуПредставление);
                    Команда.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("РассмотретьПосле", РассмотретьПосле);
                    Команда.Parameters.AddWithValue("СкрытыеКопии", СкрытыеКопии);
                    Команда.Parameters.AddWithValue("СостояниеПотомкаПисьма", СостояниеПотомкаПисьма.Ключ());
                    Команда.Parameters.AddWithValue("СтатусПисьма", СтатусПисьма.Ключ());
                    Команда.Parameters.AddWithValue("ТекстПисьма", ТекстПисьма);
                    Команда.Parameters.AddWithValue("Тема", Тема);
                    Команда.ExecuteNonQuery();
                }
            }
        }