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; } }
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; } }