Ejemplo n.º 1
0
        public void ConstructorTest()
        {
            // Arrange
            const ColumnTypes ColType = ColumnTypes.Numeric;

            // Act
            var attr = new FieldTypeAttribute(ColType);

            // Assert
            Assert.AreEqual(ColType, attr.ColumnType);
        }
        private void LoadFieldRecords(Database dc, string entityName, Type fieldType)
        {
            FieldTypeAttribute fieldTypeAttribute = fieldType.BaseType.GetCustomAttributes(typeof(FieldTypeAttribute), false).First() as FieldTypeAttribute;
            String             fieldTypeName      = fieldTypeAttribute.GetFieldTypeName();

            Fields.Where(x => x.FieldTypeName == fieldTypeName)
            .ToList()
            .ForEach(field =>
            {
                var repository = new FieldRepository {
                    BundleFieldId = field.Id, EntityId = Id
                };
                field.Records = repository.Load(dc, entityName, field.FieldTypeName);
            });
        }
        private void AddFieldRecords(Database dc, Type fieldType)
        {
            FieldTypeAttribute fieldTypeAttribute = fieldType.BaseType.GetCustomAttributes(typeof(FieldTypeAttribute), false).First() as FieldTypeAttribute;
            String             fieldTypeName      = fieldTypeAttribute.GetFieldTypeName();

            Fields.Where(x => x.FieldTypeName == fieldTypeName && x.Records != null)
            .ToList()
            .ForEach(field =>
            {
                field.Records.ForEach(data =>
                {
                    var repository = data.ToObject(fieldType);
                    dc.Add(repository);
                });
            });
        }
        private void ToBusinessObject(Database dc, Type fieldType, JObject businessObject)
        {
            LoadFieldsDefinition(dc);

            FieldTypeAttribute fieldTypeAttribute = fieldType.BaseType.GetCustomAttributes(typeof(FieldTypeAttribute), false).First() as FieldTypeAttribute;
            String             fieldTypeName      = fieldTypeAttribute.GetFieldTypeName();

            Fields.Where(x => x.FieldTypeName == fieldTypeName && x.Records != null)
            .ToList()
            .ForEach(field =>
            {
                var fieldInstance = Activator.CreateInstance(fieldType) as FieldRepository;
                var fieldValue    = fieldInstance.ToBusinessObject(field);
                businessObject.Add(field.Name.FirstCharacterToUpper(), fieldValue == null ? null : JToken.FromObject(fieldValue));
            });
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Sets the entity field from field type attribute.
        /// </summary>
        /// <param name="entityField">The entity field.</param>
        /// <param name="fieldTypeAttribute">The field type attribute.</param>
        /// <returns></returns>
        private static bool SetEntityFieldFromFieldTypeAttribute(EntityField entityField, FieldTypeAttribute fieldTypeAttribute)
        {
            if (fieldTypeAttribute != null)
            {
                var fieldTypeCache = FieldTypeCache.Read(fieldTypeAttribute.FieldTypeGuid);
                if (fieldTypeCache != null && fieldTypeCache.Field != null)
                {
                    if (fieldTypeCache.Field.HasFilterControl())
                    {
                        if (entityField.Title.EndsWith(" Id"))
                        {
                            entityField.Title = entityField.Title.ReplaceLastOccurrence(" Id", string.Empty);
                        }

                        entityField.FieldType = fieldTypeCache;
                        if (fieldTypeAttribute.ConfigurationKey != null && fieldTypeAttribute.ConfigurationValue != null)
                        {
                            entityField.FieldConfig.Add(fieldTypeAttribute.ConfigurationKey, new ConfigurationValue(fieldTypeAttribute.ConfigurationValue));
                        }

                        return(true);
                    }
                }
            }

            return(false);
        }
        private String GetFieldTypeName <TFieldRepository>()
        {
            FieldTypeAttribute fieldType = typeof(TFieldRepository).BaseType.GetCustomAttributes(typeof(FieldTypeAttribute), false).First() as FieldTypeAttribute;

            return(fieldType.GetFieldTypeName());
        }