public bool UpdateBasicData(Guid cmsObjectId, Guid objectTypeCustomFieldId, object value, BasicCustomFieldTypeEnum basicCustomFieldType, CustomFieldTypeFlag customFieldTypeFlag) { Session session = null; try { session = XpoHelper.GetNewSession(); ObjectCustomFieldBO objectCustomFieldBO = new ObjectCustomFieldBO(); ObjectCustomField objectCustomField = objectCustomFieldBO.GetObjectCustomField(session, cmsObjectId, objectTypeCustomFieldId); if (objectCustomField == null) { throw new Exception("Could not found ObjectCustomField"); } BasicCustomFieldTypeBOBase basicCustomFieldTypeBO = null; switch (basicCustomFieldType) { case BasicCustomFieldTypeEnum.STRING: basicCustomFieldTypeBO = new CustomFieldDataStringBO(); break; case BasicCustomFieldTypeEnum.DATETIME: basicCustomFieldTypeBO = new CustomFieldDataDateTimeBO(); break; case BasicCustomFieldTypeEnum.FLOAT: basicCustomFieldTypeBO = new ObjectCustomFieldDataFloatBO(); break; case BasicCustomFieldTypeEnum.INTEGER: basicCustomFieldTypeBO = new ObjectCustomFieldDataIntegerBO(); break; default: break; } return(basicCustomFieldTypeBO.UpdateCustomFieldData(objectCustomField.ObjectCustomFieldId, value, customFieldTypeFlag)); } catch (Exception) { throw; } finally { if (session != null) { session.Dispose(); } } }
public bool UpdatePredefinitionData(Guid cmsObjectId, Guid objectTypeCustomFieldId, IEnumerable <Guid> refIds, PredefinitionCustomFieldTypeEnum predefinitionCustomFieldType, CustomFieldTypeFlag customFieldTypeFlag) { Session session = null; try { session = XpoHelper.GetNewSession(); ObjectCustomFieldDataPreDefinitionBO objectCustomFieldDataPreDefinitionBO = new ObjectCustomFieldDataPreDefinitionBO(); ObjectCustomFieldBO objectCustomFieldBO = new ObjectCustomFieldBO(); ObjectCustomField objectCustomField = objectCustomFieldBO.GetObjectCustomField(session, cmsObjectId, objectTypeCustomFieldId); if (objectCustomField == null) { throw new Exception("Could not found ObjectCustomField"); } return(objectCustomFieldDataPreDefinitionBO.UpdateCustomFieldData( objectCustomField.ObjectCustomFieldId, refIds, predefinitionCustomFieldType, customFieldTypeFlag)); } catch (Exception) { throw; } finally { if (session != null) { session.Dispose(); } } }
public void CopyCustomFieldData(Guid sourceCMSObjectId, Guid targetCMSObjectId, bool isOnlyGetReadOnly) { ObjectCustomFieldBO objectCustomFieldBO = null; Session session = null; try { session = XpoHelper.GetNewSession(); //Get source object NAS.DAL.CMS.ObjectDocument.Object sourceCMSObject = session.GetObjectByKey <NAS.DAL.CMS.ObjectDocument.Object>(sourceCMSObjectId); if (sourceCMSObject == null) { throw new Exception("Source object cannot be null"); } NAS.DAL.CMS.ObjectDocument.Object targetCMSObject = session.GetObjectByKey <NAS.DAL.CMS.ObjectDocument.Object>(targetCMSObjectId); if (targetCMSObject == null) { throw new Exception("Target object cannot be null"); } if (!sourceCMSObject.ObjectTypeId.Equals(targetCMSObject.ObjectTypeId)) { throw new Exception("Object type of the source and the target is different"); } if (isOnlyGetReadOnly) { int countReadOnlyData = sourceCMSObject.ObjectCustomFields.Count(r => !r.CustomFieldType.Equals(Utility.CustomFieldTypeConstant.CUSTOM_FIELD_TYPE_DEFAULT)); if (countReadOnlyData == 0) { return; } } IEnumerable <CustomFieldDataEntityBase> sourceCMSObjectData = GetCustomFieldData(sourceCMSObjectId, isOnlyGetReadOnly); objectCustomFieldBO = new ObjectCustomFieldBO(); //Update target's custom fields before copy data from source UpdateCustomFields(targetCMSObject.ObjectId); foreach (var sourceData in sourceCMSObjectData) { ObjectCustomField targetObjectCustomField = targetCMSObject.ObjectCustomFields .Where(r => r.ObjectTypeCustomFieldId.ObjectTypeCustomFieldId == sourceData.ObjectTypeCustomFieldId) .First(); BasicCustomFieldDataEntity tempBasicDataEntity = null; UserDefinedListCustomFieldDataEntity tempUserDefinedListEntity = null; PredefinitionCustomFieldEntity tempPredefinitionDataEntity = null; switch (sourceData.CustomFieldCategory) { case CustomFieldCategoryEnum.BASIC: tempBasicDataEntity = (BasicCustomFieldDataEntity)sourceData; //Update basic data objectCustomFieldBO.UpdateBasicData( targetObjectCustomField.ObjectCustomFieldId, tempBasicDataEntity.BasicDataValue, tempBasicDataEntity.BasicCustomFieldType, tempBasicDataEntity.ObjectCustomFieldFlag); break; case CustomFieldCategoryEnum.LIST: tempUserDefinedListEntity = (UserDefinedListCustomFieldDataEntity)sourceData; //Update user defined list data objectCustomFieldBO.UpdateUserDefinedListData( targetObjectCustomField.ObjectCustomFieldId, tempUserDefinedListEntity.UserDefinedItemIds, tempUserDefinedListEntity.ObjectCustomFieldFlag); break; case CustomFieldCategoryEnum.BUILT_IN: tempPredefinitionDataEntity = (PredefinitionCustomFieldEntity)sourceData; //Update predefinition data PredefinitionCustomFieldTypeEnum predefinitionCustomFieldTypeEnum; bool isValidPredefinitionType = Enum.TryParse <PredefinitionCustomFieldTypeEnum>( tempPredefinitionDataEntity.PredefinitionType, out predefinitionCustomFieldTypeEnum); if (!isValidPredefinitionType) { throw new Exception("Invalid predeninition type"); } objectCustomFieldBO.UpdatePredefinitionData( targetObjectCustomField.ObjectCustomFieldId, tempPredefinitionDataEntity.PredefinitionRefIds, predefinitionCustomFieldTypeEnum, tempPredefinitionDataEntity.ObjectCustomFieldFlag); break; default: break; } } } catch (Exception) { throw; } finally { if (session != null) { session.Dispose(); } } }