Beispiel #1
0
        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();
                }
            }
        }
Beispiel #2
0
        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();
                }
            }
        }
Beispiel #3
0
        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();
                }
            }
        }