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