Exemplo n.º 1
0
        }                                                        //Файл
        public void Записать()
        {
            //Установка блокировки элемента на горизантально масштабированный кластер.
            //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки.
            //Выделение сервиса для блокировки элемента и генерации кода
            //Выполнение операций контроля без обращений к sql-серверу.
            //Контроль конфликта блокировок.
            //Контроль загрузки булкинсертом гетерогенной коллекции.
            //Контроль уникальности кода для справочников.
            //Контроль уникальности номера для документов, в границах префикса.
            //Контроль владельца, он не может быть группой.
            //Контроль владельца он должен быть задан.
            //Контроль родителя он должен быть группой.
            //Контроль количества уровней, должен соотвествовать метаданным.
            //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника.
            //Контроль уникальности ссылки
            //Контроль зацикливания
            //Опционально контроль битых ссылок.
            //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента.
            using (var Подключение = new SqlConnection(СтрокаСоединения))
            {
                Подключение.Open();
                using (var Команда = Подключение.CreateCommand())
                {
                    if (_ЭтоНовый)
                    {
                        Команда.CommandText = @"
						Insert Into _Reference23089(
						_IDRRef
						/*,_Version*/
						,_Marked
						,_IsMetadata
						,_Code
						,_Description
						,_Fld23340RRef
						,_Fld23341
						,_Fld23342
						,_Fld23343
						,_Fld23344
						,_Fld23345
						,_Fld23346
						,_Fld23347
						,_Fld23348
						,_Fld23349
						,_Fld23350
						,_Fld23351
						,_Fld23352RRef
						,_Fld23353RRef
						,_Fld23354
						,_Fld23355RRef
						,_Fld23356RRef
						,_Fld23357)
						Values(
						@Ссылка
						/*,@Версия*/
						,@ПометкаУдаления
						,@Предопределенный
						,@Код
						,@Наименование
						,@Автор
						,@ДатаМодификацииУниверсальная
						,@ДатаСоздания
						,@Зашифрован
						,@ИндексКартинки
						,@Комментарий
						,@НомерВерсии
						,@ПодписанЭЦП
						,@ПолноеНаименование
						,@ПутьКФайлу
						,@Размер
						,@Расширение
						,@РодительскаяВерсия
						,@СтатусИзвлеченияТекста
						,@ТекстХранилище
						,@ТипХраненияФайла
						,@Том
						,@ФайлХранилище)"                        ;
                    }
                    else
                    {
                        Команда.CommandText = @"
						Update _Reference23089
						Set
						/*_IDRRef	= @Ссылка*/
						/*,_Version	= @Версия*/
						_Marked	= @ПометкаУдаления
						,_IsMetadata	= @Предопределенный
						,_Code	= @Код
						,_Description	= @Наименование
						,_Fld23340RRef	= @Автор
						,_Fld23341	= @ДатаМодификацииУниверсальная
						,_Fld23342	= @ДатаСоздания
						,_Fld23343	= @Зашифрован
						,_Fld23344	= @ИндексКартинки
						,_Fld23345	= @Комментарий
						,_Fld23346	= @НомерВерсии
						,_Fld23347	= @ПодписанЭЦП
						,_Fld23348	= @ПолноеНаименование
						,_Fld23349	= @ПутьКФайлу
						,_Fld23350	= @Размер
						,_Fld23351	= @Расширение
						,_Fld23352RRef	= @РодительскаяВерсия
						,_Fld23353RRef	= @СтатусИзвлеченияТекста
						,_Fld23354	= @ТекстХранилище
						,_Fld23355RRef	= @ТипХраненияФайла
						,_Fld23356RRef	= @Том
						,_Fld23357	= @ФайлХранилище
						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("ТекстХранилище", new byte[0]);
                    Команда.Parameters.AddWithValue("ТипХраненияФайла", ТипХраненияФайла.Ключ());
                    Команда.Parameters.AddWithValue("Том", Том.Ссылка);
                    Команда.Parameters.AddWithValue("ФайлХранилище", new byte[0]);
                    Команда.ExecuteNonQuery();
                }
            }
        }
Exemplo n.º 2
0
        }                                                                                                //Электронный документ владелец
        public void Записать()
        {
            //Установка блокировки элемента на горизантально масштабированный кластер.
            //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки.
            //Выделение сервиса для блокировки элемента и генерации кода
            //Выполнение операций контроля без обращений к sql-серверу.
            //Контроль конфликта блокировок.
            //Контроль загрузки булкинсертом гетерогенной коллекции.
            //Контроль уникальности кода для справочников.
            //Контроль уникальности номера для документов, в границах префикса.
            //Контроль владельца, он не может быть группой.
            //Контроль владельца он должен быть задан.
            //Контроль родителя он должен быть группой.
            //Контроль количества уровней, должен соотвествовать метаданным.
            //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника.
            //Контроль уникальности ссылки
            //Контроль зацикливания
            //Опционально контроль битых ссылок.
            //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента.
            using (var Подключение = new SqlConnection(СтрокаСоединения))
            {
                Подключение.Open();
                using (var Команда = Подключение.CreateCommand())
                {
                    if (_ЭтоНовый)
                    {
                        Команда.CommandText = @"
						Insert Into _Reference23137(
						_IDRRef
						/*,_Version*/
						,_Marked
						,_IsMetadata
						,_Description
						,_Fld23920RRef
						,_Fld23921RRef
						,_Fld23923
						,_Fld23924
						,_Fld23925
						,_Fld23926
						,_Fld23927
						,_Fld23928
						,_Fld23929
						,_Fld23930RRef
						,_Fld23931
						,_Fld23932RRef
						,_Fld23933RRef
						,_Fld23934
						,_Fld23935
						,_Fld23936
						,_Fld23937
						,_Fld23938RRef
						,_Fld23939RRef
						,_Fld23940
						,_Fld23941
						,_Fld23942
						,_Fld23943
						,_Fld23944
						,_Fld23945
						,_Fld23946
						,_Fld23947RRef
						,_Fld23948RRef
						,_Fld23949RRef
						,_Fld23950RRef
						,_Fld23951
						,_Fld23952RRef
						,_Fld23953RRef
						,_Fld23954RRef
						,_Fld23955
						,_Fld23956
						,_Fld23957RRef)
						Values(
						@Ссылка
						/*,@Версия*/
						,@ПометкаУдаления
						,@Предопределенный
						,@Наименование
						,@Автор
						,@ВидЭД
						,@ДатаДокументаОтправителя
						,@ДатаИзмененияСтатусаЭД
						,@ДатаМодификацииУниверсальная
						,@ДатаСоздания
						,@ДатаФормированияЭДОтправителем
						,@Загружен
						,@Зашифрован
						,@Изменил
						,@ИндексКартинки
						,@Контрагент
						,@НаправлениеЭД
						,@НомерВерсииЭД
						,@НомерДокументаОтправителя
						,@НомерЭД
						,@Описание
						,@Организация
						,@Ответственный
						,@ОтправительЭД
						,@ПодписанЭЦП
						,@ПолучательЭД
						,@ПричинаОтклонения
						,@ПутьКФайлу
						,@Размер
						,@Расширение
						,@Редактирует
						,@СоглашениеЭД
						,@СтатусИзвлеченияТекста
						,@СтатусЭД
						,@ТекстХранилище
						,@ТипХраненияФайла
						,@ТипЭлементаВерсииЭД
						,@Том
						,@УникальныйИД
						,@ФайлХранилище
						,@ЭлектронныйДокументВладелец)"                        ;
                    }
                    else
                    {
                        Команда.CommandText = @"
						Update _Reference23137
						Set
						/*_IDRRef	= @Ссылка*/
						/*,_Version	= @Версия*/
						_Marked	= @ПометкаУдаления
						,_IsMetadata	= @Предопределенный
						,_Description	= @Наименование
						,_Fld23920RRef	= @Автор
						,_Fld23921RRef	= @ВидЭД
						,_Fld23923	= @ДатаДокументаОтправителя
						,_Fld23924	= @ДатаИзмененияСтатусаЭД
						,_Fld23925	= @ДатаМодификацииУниверсальная
						,_Fld23926	= @ДатаСоздания
						,_Fld23927	= @ДатаФормированияЭДОтправителем
						,_Fld23928	= @Загружен
						,_Fld23929	= @Зашифрован
						,_Fld23930RRef	= @Изменил
						,_Fld23931	= @ИндексКартинки
						,_Fld23932RRef	= @Контрагент
						,_Fld23933RRef	= @НаправлениеЭД
						,_Fld23934	= @НомерВерсииЭД
						,_Fld23935	= @НомерДокументаОтправителя
						,_Fld23936	= @НомерЭД
						,_Fld23937	= @Описание
						,_Fld23938RRef	= @Организация
						,_Fld23939RRef	= @Ответственный
						,_Fld23940	= @ОтправительЭД
						,_Fld23941	= @ПодписанЭЦП
						,_Fld23942	= @ПолучательЭД
						,_Fld23943	= @ПричинаОтклонения
						,_Fld23944	= @ПутьКФайлу
						,_Fld23945	= @Размер
						,_Fld23946	= @Расширение
						,_Fld23947RRef	= @Редактирует
						,_Fld23948RRef	= @СоглашениеЭД
						,_Fld23949RRef	= @СтатусИзвлеченияТекста
						,_Fld23950RRef	= @СтатусЭД
						,_Fld23951	= @ТекстХранилище
						,_Fld23952RRef	= @ТипХраненияФайла
						,_Fld23953RRef	= @ТипЭлементаВерсииЭД
						,_Fld23954RRef	= @Том
						,_Fld23955	= @УникальныйИД
						,_Fld23956	= @ФайлХранилище
						,_Fld23957RRef	= @ЭлектронныйДокументВладелец
						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("ОтправительЭД", ОтправительЭД);
                    Команда.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("ФайлХранилище", new byte[0]);
                    Команда.Parameters.AddWithValue("ЭлектронныйДокументВладелец", ЭлектронныйДокументВладелец.Ссылка);
                    Команда.ExecuteNonQuery();
                }
            }
        }