Esempio n. 1
0
        public override bool UpdateCustomFieldData(Guid objectCustomFieldId, object value, CustomFieldTypeFlag flag)
        {
            UnitOfWork uow = null;

            try
            {
                uow = XpoHelper.GetNewUnitOfWork();
                //Get ObjectCustomField by Id
                ObjectCustomField objectCustomField =
                    uow.GetObjectByKey <ObjectCustomField>(objectCustomFieldId);
                if (objectCustomField.ObjectCustomFieldDatas.Count > 0 && objectCustomField.ObjectCustomFieldDatas.FirstOrDefault() != null)
                {
                    objectCustomField.CustomFieldType = flag.Value;
                    uow.FlushChanges();
                    CustomFieldDataFloat customFieldData =
                        (CustomFieldDataFloat)objectCustomField.ObjectCustomFieldDatas
                        .FirstOrDefault().CustomFieldDataId;

                    customFieldData.FloatValue = (double)value;

                    ObjectBO objectBO = new ObjectBO();
                    DynamicObjectListSerializeDataItem dataitem = new DynamicObjectListSerializeDataItem()
                    {
                        ObjectCustomFieldId = objectCustomFieldId,
                        CustomFieldName     = customFieldData.CustomFieldId.Name,
                        CustomFieldData     = customFieldData.FloatValue.ToString()
                    };
                    objectBO.SetDynamicObjectListItem(uow, objectCustomField.ObjectId.ObjectId, dataitem);

                    uow.CommitChanges();
                }
                else
                {
                    throw new Exception();
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (uow != null)
                {
                    uow.Dispose();
                }
            }
        }
Esempio n. 2
0
        private CustomFieldData InitDefaultDataForBasicCustomFieldType(
            Session session,
            BasicCustomFieldTypeEnum basicCustomFieldType,
            Guid customFieldId)
        {
            CustomFieldData customFieldData = null;
            CustomField     customField     = null;

            customField = session.GetObjectByKey <CustomField>(customFieldId);

            if (customField == null)
            {
                throw new Exception("Could not found the custom field");
            }

            switch (basicCustomFieldType)
            {
            case BasicCustomFieldTypeEnum.STRING:
                customFieldData = new CustomFieldDataString(session)
                {
                    CustomFieldDataId = Guid.NewGuid(),
                    CustomFieldId     = customField,
                    StringValue       = String.Empty
                };
                customFieldData.Save();
                break;

            case BasicCustomFieldTypeEnum.DATETIME:
                customFieldData = new CustomFieldDataDateTime(session)
                {
                    CustomFieldDataId = Guid.NewGuid(),
                    CustomFieldId     = customField,
                    DateTimeValue     = DateTime.MinValue
                };
                customFieldData.Save();
                break;

            case BasicCustomFieldTypeEnum.FLOAT:
                customFieldData = new CustomFieldDataFloat(session)
                {
                    CustomFieldDataId = Guid.NewGuid(),
                    CustomFieldId     = customField,
                    FloatValue        = float.MinValue
                };
                customFieldData.Save();
                break;

            case BasicCustomFieldTypeEnum.INTEGER:
                customFieldData = new CustomFieldDataInt(session)
                {
                    CustomFieldDataId = Guid.NewGuid(),
                    CustomFieldId     = customField,
                    IntValue          = int.MinValue
                };
                customFieldData.Save();
                break;

            default:
                break;
            }

            return(customFieldData);
        }