private static async Task CheckPathAsync(Guid parentId, IAssetQueryService assetQuery, AddValidation e) { if (parentId != default) { var path = await assetQuery.FindAssetFolderAsync(parentId); if (path.Count == 0) { e("Asset folder does not exist.", nameof(MoveAsset.ParentId)); } } }
private static void ValidateRootField(UpsertSchemaField field, string prefix, AddValidation e) { if (field == null) { e(Not.Defined("Field"), prefix); } else { if (!field.Partitioning.IsValidPartitioning()) { e(Not.Valid(nameof(field.Partitioning)), $"{prefix}.{nameof(field.Partitioning)}"); } ValidateField(field, prefix, e); if (field.Nested?.Length > 0) { if (field.Properties is ArrayFieldProperties) { field.Nested.Foreach((nestedField, nestedIndex) => { var nestedPrefix = $"{prefix}.Nested[{nestedIndex}]"; ValidateNestedField(nestedField, nestedPrefix, e); }); } else if (field.Nested.Length > 0) { e(T.Get("schemas.onlyArraysHaveNested"), $"{prefix}.{nameof(field.Partitioning)}"); } foreach (var fieldName in field.Nested.Duplicates(x => x.Name)) { if (fieldName.IsPropertyName()) { e(T.Get("schemas.duplicateFieldName", new { field = fieldName }), $"{prefix}.Nested"); } } } } }
private static void ValidateField(UpsertSchemaFieldBase field, string prefix, AddValidation e) { if (!field.Name.IsPropertyName()) { e("Field name must be a valid javascript property name.", $"{prefix}.{nameof(field.Name)}"); } if (field.Properties == null) { e(Not.Defined("Field properties"), $"{prefix}.{nameof(field.Properties)}"); } else { if (!field.Properties.IsForApi()) { if (field.IsHidden) { e("UI field cannot be hidden.", $"{prefix}.{nameof(field.IsHidden)}"); } if (field.IsDisabled) { e("UI field cannot be disabled.", $"{prefix}.{nameof(field.IsDisabled)}"); } } var errors = FieldPropertiesValidator.Validate(field.Properties); errors.Foreach(x => x.WithPrefix($"{prefix}.{nameof(field.Properties)}").AddTo(e)); } }
private static void ValidateNestedField(UpsertSchemaNestedField nestedField, string prefix, AddValidation e) { if (nestedField == null) { e(Not.Defined("Field"), prefix); } else { if (nestedField.Properties is ArrayFieldProperties) { e("Nested field cannot be array fields.", $"{prefix}.{nameof(nestedField.Properties)}"); } ValidateField(nestedField, prefix, e); } }
private static void ValidateRootField(UpsertSchemaField field, string prefix, AddValidation e) { if (field == null) { e(Not.Defined("Field"), prefix); } else { if (!field.Partitioning.IsValidPartitioning()) { e(Not.Valid("Partitioning"), $"{prefix}.{nameof(field.Partitioning)}"); } ValidateField(field, prefix, e); if (field.Nested?.Count > 0) { if (field.Properties is ArrayFieldProperties) { var nestedIndex = 0; var nestedPrefix = string.Empty; foreach (var nestedField in field.Nested) { nestedIndex++; nestedPrefix = $"{prefix}.Nested[{nestedIndex}]"; ValidateNestedField(nestedField, nestedPrefix, e); } } else if (field.Nested.Count > 0) { e("Only array fields can have nested fields.", $"{prefix}.{nameof(field.Partitioning)}"); } if (field.Nested.Select(x => x.Name).Distinct().Count() != field.Nested.Count) { e("Fields cannot have duplicate names.", $"{prefix}.Nested"); } } } }
private static async Task CheckPathAsync(DomainId appId, DomainId parentId, IAssetQueryService assetQuery, DomainId id, AddValidation e) { if (parentId != DomainId.Empty) { var path = await assetQuery.FindAssetFolderAsync(appId, parentId); if (path.Count == 0) { e(T.Get("assets.folderNotFound"), nameof(MoveAssetFolder.ParentId)); } else if (id != DomainId.Empty) { var indexOfSelf = path.IndexOf(x => x.Id == id); var indexOfParent = path.IndexOf(x => x.Id == parentId); if (indexOfSelf >= 0 && indexOfParent > indexOfSelf) { e(T.Get("assets.folderRecursion"), nameof(MoveAssetFolder.ParentId)); } } } }
public void AddTo(AddValidation e) { e(Message, propertyNames); }