Exemplo n.º 1
0
        public Field CreateField(long id, string name, FieldProperties properties)
        {
            var registered = fieldsByPropertyType.GetOrDefault(properties.GetType());

            if (registered == null)
            {
                throw new InvalidOperationException($"The field property '{properties.GetType()}' is not supported.");
            }

            return(registered.CreateField(id, name, properties));
        }
Exemplo n.º 2
0
        private T ValidateProperties(FieldProperties newProperties)
        {
            Guard.NotNull(newProperties, nameof(newProperties));

            newProperties.Freeze();

            var typedProperties = newProperties as T;

            if (typedProperties == null)
            {
                throw new ArgumentException($"Properties must be of type '{typeof(T)}", nameof(newProperties));
            }

            newProperties.Validate(() => $"Cannot update field with id '{Id}', because the settings are invalid.");

            return(typedProperties);
        }
Exemplo n.º 3
0
 public Field CreateField(long id, string name, Partitioning partitioning, FieldProperties properties)
 {
     return(fieldFactory(id, name, partitioning, properties));
 }
Exemplo n.º 4
0
 Field IRegisteredField.CreateField(long id, string name, FieldProperties properties)
 {
     return(fieldFactory(id, name, properties));
 }
Exemplo n.º 5
0
        public override Field Update(FieldProperties newProperties)
        {
            var typedProperties = ValidateProperties(newProperties);

            return(Clone <Field <T> >(clone => clone.properties = typedProperties));
        }
Exemplo n.º 6
0
 public abstract Field Update(FieldProperties newProperties);
Exemplo n.º 7
0
 public Schema UpdateField(long fieldId, FieldProperties newProperties)
 {
     return(UpdateField(fieldId, field => field.Update(newProperties)));
 }