public static void CanReorder(ReorderFields command, Schema schema) { Guard.NotNull(command, nameof(command)); IArrayField?arrayField = null; if (command.ParentFieldId.HasValue) { arrayField = GuardHelper.GetArrayFieldOrThrow(schema, command.ParentFieldId.Value, false); } Validate.It(e => { if (command.FieldIds == null) { e(Not.Defined(nameof(command.FieldIds)), nameof(command.FieldIds)); } if (arrayField == null) { ValidateFieldIds(command, schema.FieldsById, e); } else { ValidateFieldIds(command, arrayField.FieldsById, e); } }); }
public static void CanReorder(Schema schema, ReorderFields command) { Guard.NotNull(command, nameof(command)); IArrayField arrayField = null; if (command.ParentFieldId.HasValue) { arrayField = GuardHelper.GetArrayFieldOrThrow(schema, command.ParentFieldId.Value, false); } Validate.It(() => "Cannot reorder schema fields.", error => { if (command.FieldIds == null) { error("Field ids is required.", nameof(command.FieldIds)); } if (arrayField == null) { ValidateFieldIds(error, command, schema.FieldsById); } else { ValidateFieldIds(error, command, arrayField.FieldsById); } }); }
public static void CanUpdate(Schema schema, UpdateField command) { Guard.NotNull(command, nameof(command)); var field = GuardHelper.GetFieldOrThrow(schema, command.FieldId, command.ParentFieldId); if (field.IsLocked) { throw new DomainException("Schema field is already locked."); } Validate.It(() => "Cannot update field.", e => { if (command.Properties == null) { e("Properties is required.", nameof(command.Properties)); } else { var errors = FieldPropertiesValidator.Validate(command.Properties); errors.Foreach(x => x.WithPrefix(nameof(command.Properties)).AddTo(e)); } }); }
public static void CanHide(HideField command, Schema schema) { Guard.NotNull(command, nameof(command)); var field = GuardHelper.GetFieldOrThrow(schema, command.FieldId, command.ParentFieldId, false); if (!field.IsForApi(true)) { throw new DomainException("UI field cannot be hidden."); } }
public static void CanDelete(Schema schema, DeleteField command) { Guard.NotNull(command); var field = GuardHelper.GetFieldOrThrow(schema, command.FieldId, command.ParentFieldId, false); if (field.IsLocked) { throw new DomainException("Schema field is locked."); } }
public static void CanDisable(DisableField command, Schema schema) { Guard.NotNull(command); var field = GuardHelper.GetFieldOrThrow(schema, command.FieldId, command.ParentFieldId, false); if (!field.IsForApi(true)) { throw new DomainException("UI field cannot be diabled."); } }
public static void CanLock(Schema schema, LockField command) { Guard.NotNull(command, nameof(command)); var field = GuardHelper.GetFieldOrThrow(schema, command.FieldId, command.ParentFieldId, false); if (field.IsLocked) { throw new DomainException("Schema field is already locked."); } }
public static void CanEnable(Schema schema, EnableField command) { Guard.NotNull(command); var field = GuardHelper.GetFieldOrThrow(schema, command.FieldId, command.ParentFieldId, false); if (!field.IsDisabled) { throw new DomainException("Schema field is already enabled."); } }
public static void CanShow(Schema schema, ShowField command) { Guard.NotNull(command, nameof(command)); var field = GuardHelper.GetFieldOrThrow(schema, command.FieldId, command.ParentFieldId, false); if (!field.IsHidden) { throw new DomainException("Schema field is already visible."); } }
public static void CanDisable(DisableField command, Schema schema) { Guard.NotNull(command, nameof(command)); var field = GuardHelper.GetFieldOrThrow(schema, command.FieldId, command.ParentFieldId, false); if (!field.IsForApi(true)) { throw new DomainException(T.Get("schemas.uiFieldCannotBeDisabled")); } }
public static void CanHide(Schema schema, HideField command) { Guard.NotNull(command, nameof(command)); var field = GuardHelper.GetFieldOrThrow(schema, command.FieldId, command.ParentFieldId); if (field.IsLocked) { throw new DomainException("Schema field is locked."); } if (field.IsHidden) { throw new DomainException("Schema field is already hidden."); } }
public static void CanHide(Schema schema, HideField command) { Guard.NotNull(command); var field = GuardHelper.GetFieldOrThrow(schema, command.FieldId, command.ParentFieldId, false); if (field.IsHidden) { throw new DomainException("Schema field is already hidden."); } if (!field.IsForApi()) { throw new DomainException("UI field cannot be hidden."); } }
public static void CanDisable(Schema schema, DisableField command) { Guard.NotNull(command, nameof(command)); var field = GuardHelper.GetFieldOrThrow(schema, command.FieldId, command.ParentFieldId); if (field.IsDisabled) { throw new DomainException("Schema field is already disabled."); } if (!field.IsForApi()) { throw new DomainException("UI field cannot be disabled."); } }
public static void CanAdd(Schema schema, AddField command) { Guard.NotNull(command, nameof(command)); Validate.It(() => "Cannot add a new field.", e => { if (!command.Name.IsPropertyName()) { e("Name must be a valid javascript property name.", nameof(command.Name)); } if (command.Properties == null) { e(Not.Defined("Properties"), nameof(command.Properties)); } else { var errors = FieldPropertiesValidator.Validate(command.Properties); errors.Foreach(x => x.WithPrefix(nameof(command.Properties)).AddTo(e)); } if (command.ParentFieldId.HasValue) { var arrayField = GuardHelper.GetArrayFieldOrThrow(schema, command.ParentFieldId.Value, false); if (arrayField.FieldsByName.ContainsKey(command.Name)) { e("A field with the same name already exists."); } } else { if (command.ParentFieldId == null && !command.Partitioning.IsValidPartitioning()) { e(Not.Valid("Partitioning"), nameof(command.Partitioning)); } if (schema.FieldsByName.ContainsKey(command.Name)) { e("A field with the same name already exists."); } } }); }
public static void CanAdd(AddField command, Schema schema) { Guard.NotNull(command, nameof(command)); Validate.It(e => { if (!command.Name.IsPropertyName()) { e(Not.ValidJavascriptName(nameof(command.Name)), nameof(command.Name)); } if (command.Properties == null) { e(Not.Defined(nameof(command.Properties)), nameof(command.Properties)); } else { var errors = FieldPropertiesValidator.Validate(command.Properties); errors.Foreach((x, _) => x.WithPrefix(nameof(command.Properties)).AddTo(e)); } if (command.ParentFieldId.HasValue) { var arrayField = GuardHelper.GetArrayFieldOrThrow(schema, command.ParentFieldId.Value, false); if (arrayField.FieldsByName.ContainsKey(command.Name)) { e(T.Get("schemas.fieldNameAlreadyExists")); } } else { if (command.ParentFieldId == null && !command.Partitioning.IsValidPartitioning()) { e(Not.Valid("Partitioning"), nameof(command.Partitioning)); } if (schema.FieldsByName.ContainsKey(command.Name)) { e(T.Get("schemas.fieldNameAlreadyExists")); } } }); }
public static void CanUpdate(Schema schema, UpdateField command) { Guard.NotNull(command, nameof(command)); var field = GuardHelper.GetFieldOrThrow(schema, command.FieldId, command.ParentFieldId, false); Validate.It(() => "Cannot update field.", e => { if (command.Properties == null) { e(Not.Defined("Properties"), nameof(command.Properties)); } else { var errors = FieldPropertiesValidator.Validate(command.Properties); errors.Foreach(x => x.WithPrefix(nameof(command.Properties)).AddTo(e)); } }); }
public static void CanDelete(DeleteField command, Schema schema) { Guard.NotNull(command, nameof(command)); GuardHelper.GetFieldOrThrow(schema, command.FieldId, command.ParentFieldId, false); }
public static void CanLock(LockField command, Schema schema) { Guard.NotNull(command, nameof(command)); GuardHelper.GetFieldOrThrow(schema, command.FieldId, command.ParentFieldId, true); }