Ejemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="DocObj">При записи в БД нового обьекта, DocObj это новый обьект созданный предварительным вызовом CreateDoc(); при добавлении файла к существующей сборке, DocObj - обьект сборки"</param>
        /// <param name="filePath"></param>
        private void Blob(ref IDBObject DocObj, MyStruct _object)
        {
            if (_object.Flag == 5)// пишем Blob не в новый документ, а в сборку
            {
                DocObj = createdDocs.Where(x => x.Key.Equals(_object.RefAsmName)).Select(y => y.Value).First();
            }

            int          attrFile = MetaDataHelper.GetAttributeTypeID(new Guid(SystemGUIDs.attributeFile));// атрибут "Файл"
            IDBAttribute fileAtr  = DocObj.GetAttributeByID(attrFile);

            if (fileAtr.Values.Count() >= 1)
            {
                fileAtr.AddValue(_object.Path);
            }
            using (var ms = new MemoryStream(File.ReadAllBytes(_object.Path)))
            {
                BlobInformation blInfo = new BlobInformation(0, 0, DateTime.Now, _object.Path, ArcMethods.NotPacked, null);
                BlobProcWriter  writer = new BlobProcWriter(fileAtr, (int)AttributableElements.Object, blInfo, ms, null, null);

                writer.WriteData();
            }
        }