示例#1
0
文件: ObjectBO.cs 项目: ewin66/dev
        private bool AttachObjectCustomFieldWithDefaultValue(Session session
                                                             , DAL.CMS.ObjectDocument.Object CMSObject
                                                             , NAS.DAL.CMS.ObjectDocument.ObjectTypeCustomField objectTypeCustomField
                                                             , CustomFieldTypeFlag option)
        {
            try
            {
                //Create ObjectCustomField
                ObjectCustomField objectCustomField = new ObjectCustomField(session)
                {
                    ObjectCustomFieldId     = Guid.NewGuid(),
                    ObjectId                = CMSObject,
                    ObjectTypeCustomFieldId = objectTypeCustomField,
                    CustomFieldType         = option.Value
                };
                objectCustomField.Save();

                //Insert default value for custom field
                CustomFieldData customFieldData = null;

                string customFieldTypeCode = objectTypeCustomField.CustomFieldId.CustomFieldTypeId.Code;

                BasicCustomFieldTypeEnum basicCustomFieldType = BasicCustomFieldTypeEnum.NONE;

                bool isBasicType =
                    Enum.TryParse <BasicCustomFieldTypeEnum>(customFieldTypeCode, out basicCustomFieldType);

                if (isBasicType)
                {
                    customFieldData = InitDefaultDataForBasicCustomFieldType(session,
                                                                             (BasicCustomFieldTypeEnum)Enum.Parse(typeof(BasicCustomFieldTypeEnum), customFieldTypeCode),
                                                                             objectTypeCustomField.CustomFieldId.CustomFieldId);

                    if (customFieldData != null)
                    {
                        //Insert into ObjectCustomFieldData
                        ObjectCustomFieldData defaultObjectCustomFieldData =
                            new ObjectCustomFieldData(session)
                        {
                            ObjectCustomFieldDataId = Guid.NewGuid(),
                            CustomFieldDataId       = customFieldData,
                            ObjectCustomFieldId     = objectCustomField
                        };
                        defaultObjectCustomFieldData.Save();
                    }
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
示例#2
0
文件: ObjectBO.cs 项目: ewin66/dev
        public NAS.DAL.CMS.ObjectDocument.Object CreateCMSObject(Session session,
                                                                 ObjectTypeEnum type,
                                                                 params ObjectCustomFieldOption[] options)
        {
            NAS.DAL.CMS.ObjectDocument.Object CMSObject = null;
            try
            {
                //Get object type
                NAS.DAL.CMS.ObjectDocument.ObjectType CMSObjectType = ObjectType.GetDefault(session, type);
                //Create new CMS Object
                CMSObject = new DAL.CMS.ObjectDocument.Object(session)
                {
                    ObjectId     = Guid.NewGuid(),
                    ObjectTypeId = CMSObjectType
                };
                CMSObject.Save();

                foreach (var objectTypeCustomField in CMSObjectType.ObjectTypeCustomFields)
                {
                    CustomFieldTypeFlag flag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_DEFAULT;
                    if (options.Length > 0)
                    {
                        ObjectCustomFieldOption option =
                            options.Where(r => r.CustomFieldId == objectTypeCustomField.CustomFieldId.CustomFieldId).FirstOrDefault();
                        if (option != null)
                        {
                            flag = option.ObjectCustomFieldFlag;
                        }
                    }
                    AttachObjectCustomFieldWithDefaultValue(session, CMSObject, objectTypeCustomField, flag);
                }
                return(CMSObject);
            }
            catch (Exception)
            {
                throw;
            }
        }