Esempio n. 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="DocObj">Передаем null, инициализируеться в методе</param>
        /// <param name="_object"></param>
        private void CreatDoc(ref IDBObject DocObj, MyStruct _object)
        {
            DocObj = null;
            IDBObjectCollection coll = Session.GetObjectCollection((int)_object.IPsDocType);

            DocObj = coll.Create((int)_object.IPsDocType);

            // добавление создаваемого обьекта в Документы/Конструкторские/Электронные модели
            IDBAttribute atrName        = DocObj.Attributes.FindByGUID(new Guid(SystemGUIDs.attributeName));        //наименование документа
            IDBAttribute atrDesignation = DocObj.Attributes.FindByGUID(new Guid(SystemGUIDs.attributeDesignation)); //обозначение документа

            atrName.Value        = _object.Name;
            atrDesignation.Value = _object.Designition;

            var res = createdDocs.Where(x => x.Key.Equals(_object.Designition)).ToList();

            if (res.Count == 0)
            {
                createdDocs.Add(_object.Designition, DocObj);
            }
        }
Esempio n. 2
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();
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Создает изделие
        /// </summary>
        /// <param name="productType"></param>
        /// <param name="parentID">ID документа на который создаеться изделие</param>//prt
        private void CreateProduct(ref IDBObject DocObj, MyStruct _object)
        {
            IDBObjectCollection coll   = Session.GetObjectCollection((int)_object.IPsProductType);
            IDBObject           newObj = coll.Create((int)_object.IPsProductType);

            //берем аттрибуты объекта
            IDBAttribute atrDesignation = newObj.GetAttributeByGuid(new Guid(SystemGUIDs.attributeDesignation)); //обозначение
            IDBAttribute atrName        = newObj.GetAttributeByGuid(new Guid(SystemGUIDs.attributeName));        //наименование

            atrDesignation.Value = _object.Designition;
            atrName.Value        = _object.Name;
            newObj.CommitCreation(true);

            IDBObject newObjChecked = newObj.CheckOut();

            IDBRelationCollection colRel   = Session.GetRelationCollection(1004);
            IDBRelation           relation = colRel.Create(newObjChecked.ObjectID, DocObj.ID); // создаем связь между изделием и докумиентом,

            if (relation == null)
            {
                MessageBox.Show("Failed create the relation of type " + colRel.RelationTypeID.ToString());
            }
        }