diff --git a/backend/extensions/Squidex.Extensions/Actions/RuleHelper.cs b/backend/extensions/Squidex.Extensions/Actions/RuleHelper.cs index 563347290..5a6921491 100644 --- a/backend/extensions/Squidex.Extensions/Actions/RuleHelper.cs +++ b/backend/extensions/Squidex.Extensions/Actions/RuleHelper.cs @@ -42,8 +42,7 @@ namespace Squidex.Extensions.Actions public static bool IsAssetDeletion(this EnrichedEvent @event) { - return @event is EnrichedAssetEvent assetEvent && - (assetEvent.Type == EnrichedAssetEventType.Deleted); + return @event is EnrichedAssetEvent { Type: EnrichedAssetEventType.Deleted }; } public static async Task OneWayRequestAsync(this HttpClient client, HttpRequestMessage request, string requestBody = null, CancellationToken ct = default) diff --git a/backend/extensions/Squidex.Extensions/Actions/Twitter/TwitterOptions.cs b/backend/extensions/Squidex.Extensions/Actions/Twitter/TwitterOptions.cs index d602e7099..de1de90ea 100644 --- a/backend/extensions/Squidex.Extensions/Actions/Twitter/TwitterOptions.cs +++ b/backend/extensions/Squidex.Extensions/Actions/Twitter/TwitterOptions.cs @@ -12,10 +12,5 @@ namespace Squidex.Extensions.Actions.Twitter public string ClientId { get; set; } public string ClientSecret { get; set; } - - public bool IsConfigured() - { - return !string.IsNullOrWhiteSpace(ClientId) && !string.IsNullOrWhiteSpace(ClientSecret); - } } } diff --git a/backend/extensions/Squidex.Extensions/Validation/CompositeUniqueValidator.cs b/backend/extensions/Squidex.Extensions/Validation/CompositeUniqueValidator.cs index c274d0191..945bf7d24 100644 --- a/backend/extensions/Squidex.Extensions/Validation/CompositeUniqueValidator.cs +++ b/backend/extensions/Squidex.Extensions/Validation/CompositeUniqueValidator.cs @@ -76,19 +76,19 @@ namespace Squidex.Extensions.Validation switch (field.RawProperties) { - case BooleanFieldProperties _ when value is JsonBoolean boolean: + case BooleanFieldProperties when value is JsonBoolean boolean: return boolean.Value; - case BooleanFieldProperties _ when value is JsonNull: + case BooleanFieldProperties when value is JsonNull: return ClrValue.Null; - case NumberFieldProperties _ when value is JsonNumber number: + case NumberFieldProperties when value is JsonNumber number: return number.Value; - case NumberFieldProperties _ when value is JsonNull: + case NumberFieldProperties when value is JsonNull: return ClrValue.Null; - case StringFieldProperties _ when value is JsonString @string: + case StringFieldProperties when value is JsonString @string: return @string.Value; - case StringFieldProperties _ when value is JsonNull: + case StringFieldProperties when value is JsonNull: return ClrValue.Null; - case ReferencesFieldProperties _ when value is JsonArray array && array.FirstOrDefault() is JsonString @string: + case ReferencesFieldProperties when value is JsonArray array && array.FirstOrDefault() is JsonString @string: return @string.Value; } diff --git a/backend/src/Squidex.Domain.Apps.Core.Model/Apps/AppPermission.cs b/backend/src/Squidex.Domain.Apps.Core.Model/Apps/AppPermission.cs deleted file mode 100644 index db1c13474..000000000 --- a/backend/src/Squidex.Domain.Apps.Core.Model/Apps/AppPermission.cs +++ /dev/null @@ -1,17 +0,0 @@ -// ========================================================================== -// Squidex Headless CMS -// ========================================================================== -// Copyright (c) Squidex UG (haftungsbeschränkt) -// All rights reserved. Licensed under the MIT license. -// ========================================================================== - -namespace Squidex.Domain.Apps.Core.Apps -{ - public enum AppPermission - { - Owner, - Developer, - Editor, - Reader - } -} diff --git a/backend/src/Squidex.Domain.Apps.Core.Model/Apps/Json/RolesConverter.cs b/backend/src/Squidex.Domain.Apps.Core.Model/Apps/Json/RolesConverter.cs index d098b5f4a..f9986e594 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Model/Apps/Json/RolesConverter.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Model/Apps/Json/RolesConverter.cs @@ -43,14 +43,16 @@ namespace Squidex.Domain.Apps.Core.Apps.Json return new Roles(json.ToDictionary(x => x.Key, x => { + var (key, value) = x; + var permissions = PermissionSet.Empty; - if (x.Value.Permissions.Length > 0) + if (value.Permissions.Length > 0) { - permissions = new PermissionSet(x.Value.Permissions); + permissions = new PermissionSet(value.Permissions); } - return new Role(x.Key, permissions, x.Value.Properties); + return new Role(key, permissions, value.Properties); })); } } diff --git a/backend/src/Squidex.Domain.Apps.Core.Model/Apps/LanguagesConfig.cs b/backend/src/Squidex.Domain.Apps.Core.Model/Apps/LanguagesConfig.cs index 4ad83818c..f12d3f0cb 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Model/Apps/LanguagesConfig.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Model/Apps/LanguagesConfig.cs @@ -14,7 +14,7 @@ namespace Squidex.Domain.Apps.Core.Apps { public sealed class LanguagesConfig : IFieldPartitioning { - public static readonly LanguagesConfig English = new LanguagesConfig( + public static readonly LanguagesConfig English = new ( new Dictionary { [Language.EN] = new LanguageConfig() diff --git a/backend/src/Squidex.Domain.Apps.Core.Model/Apps/Role.cs b/backend/src/Squidex.Domain.Apps.Core.Model/Apps/Role.cs index d7c888056..b15f9f213 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Model/Apps/Role.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Model/Apps/Role.cs @@ -7,7 +7,6 @@ using System; using System.Collections.Generic; -using System.Collections.ObjectModel; using System.Diagnostics.Contracts; using System.Linq; using Squidex.Infrastructure; @@ -40,8 +39,6 @@ namespace Squidex.Domain.Apps.Core.Apps public const string Owner = "Owner"; public const string Reader = "Reader"; - public static readonly ReadOnlyCollection EmptyProperties = new ReadOnlyCollection(new List()); - public PermissionSet Permissions { get; } public JsonObject Properties { get; } diff --git a/backend/src/Squidex.Domain.Apps.Core.Model/Contents/ContentData.cs b/backend/src/Squidex.Domain.Apps.Core.Model/Contents/ContentData.cs index a415085cd..bfffcc4e1 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Model/Contents/ContentData.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Model/Contents/ContentData.cs @@ -59,7 +59,7 @@ namespace Squidex.Domain.Apps.Core.Contents { if (contentFieldData != null) { - var fieldValue = target.GetOrAdd(key, x => new ContentFieldData()); + var fieldValue = target.GetOrAdd(key, _ => new ContentFieldData()); if (fieldValue != null) { @@ -89,20 +89,20 @@ namespace Squidex.Domain.Apps.Core.Contents { var target = new ContentData(); - foreach (var fieldValue in ValidValues) + foreach (var (fieldName, fieldValue) in ValidValues) { - if (fieldValue.Value != null) + if (fieldValue != null) { var resultValue = new ContentFieldData(); - foreach (var (key, value) in fieldValue.Value.Where(x => x.Value.Type != JsonValueType.Null)) + foreach (var (key, value) in fieldValue.Where(x => x.Value.Type != JsonValueType.Null)) { resultValue[key] = value; } if (resultValue.Count > 0) { - target[fieldValue.Key] = resultValue; + target[fieldName] = resultValue; } } } diff --git a/backend/src/Squidex.Domain.Apps.Core.Model/Schemas/FieldCollection.cs b/backend/src/Squidex.Domain.Apps.Core.Model/Schemas/FieldCollection.cs index fadd61bdf..d25569c33 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Model/Schemas/FieldCollection.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Model/Schemas/FieldCollection.cs @@ -160,7 +160,7 @@ namespace Squidex.Domain.Apps.Core.Schemas return this; } - if (!(newField is T)) + if (newField is not T) { throw new InvalidOperationException($"Field must be of type {typeof(T)}"); } diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/FieldConverters.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/FieldConverters.cs index fa581db56..15f4658b5 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/FieldConverters.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/FieldConverters.cs @@ -22,7 +22,7 @@ namespace Squidex.Domain.Apps.Core.ConvertContent public static class FieldConverters { - public static readonly FieldConverter Noop = (data, field) => data; + public static readonly FieldConverter Noop = (data, _) => data; public static readonly FieldConverter ExcludeHidden = (data, field) => { @@ -182,7 +182,7 @@ namespace Squidex.Domain.Apps.Core.ConvertContent { foreach (var (key, value) in data.ToList()) { - IJsonValue? newValue = value; + var newValue = value; for (var i = 0; i < converters.Length; i++) { diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/StringFormatter.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/StringFormatter.cs index b3f3c5c8e..11dde4071 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/StringFormatter.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/StringFormatter.cs @@ -55,7 +55,7 @@ namespace Squidex.Domain.Apps.Core.ConvertContent public string Visit(BooleanFieldProperties properties, Args args) { - if (args.Value is JsonBoolean boolean && boolean.Value) + if (args.Value is JsonBoolean { Value: true }) { return "Yes"; } diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/ValueConverters.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/ValueConverters.cs index 9ad674552..06553b3de 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/ValueConverters.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/ValueConverters.cs @@ -126,7 +126,7 @@ namespace Squidex.Domain.Apps.Core.ConvertContent { foreach (var (fieldName, nestedValue) in nested.ToList()) { - IJsonValue? newValue = nestedValue; + var newValue = nestedValue; if (arrayField.FieldsByName.TryGetValue(fieldName, out var nestedField)) { diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/DefaultValues/DefaultValueGenerator.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/DefaultValues/DefaultValueGenerator.cs index faf826823..fb315fb64 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/DefaultValues/DefaultValueGenerator.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/DefaultValues/DefaultValueGenerator.cs @@ -34,7 +34,7 @@ namespace Squidex.Domain.Apps.Core.DefaultValues foreach (var field in schema.Fields) { - var fieldData = data.GetOrCreate(field.Name, k => new ContentFieldData()); + var fieldData = data.GetOrCreate(field.Name, _ => new ContentFieldData()); if (fieldData != null) { diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ContentReferencesExtensions.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ContentReferencesExtensions.cs index 74cf2c2d2..d695c32c0 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ContentReferencesExtensions.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ContentReferencesExtensions.cs @@ -16,17 +16,6 @@ namespace Squidex.Domain.Apps.Core.ExtractReferenceIds { public static class ContentReferencesExtensions { - public static HashSet GetReferencedIds(this ContentData source, Schema schema, int referencesPerField = int.MaxValue) - { - Guard.NotNull(schema, nameof(schema)); - - var result = new HashSet(); - - AddReferencedIds(source, schema.Fields, result, referencesPerField); - - return result; - } - public static void AddReferencedIds(this ContentData source, Schema schema, HashSet result, int referencesPerField = int.MaxValue) { Guard.NotNull(schema, nameof(schema)); @@ -45,20 +34,6 @@ namespace Squidex.Domain.Apps.Core.ExtractReferenceIds } } - public static void AddReferencedIds(this ContentData source, IField field, HashSet result, int referencesPerField = int.MaxValue) - { - Guard.NotNull(field, nameof(field)); - Guard.NotNull(result, nameof(result)); - - if (source.TryGetValue(field.Name, out var fieldData) && fieldData != null) - { - foreach (var partitionValue in fieldData) - { - ReferencesExtractor.Extract(field, partitionValue.Value, result, referencesPerField); - } - } - } - private static void AddReferencedIds(ContentData source, HashSet result, int referencesPerField, IField field) { if (source.TryGetValue(field.Name, out var fieldData) && fieldData != null) diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ReferencesExtensions.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ReferencesExtensions.cs deleted file mode 100644 index f28bd8d4c..000000000 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ReferencesExtensions.cs +++ /dev/null @@ -1,39 +0,0 @@ -// ========================================================================== -// Squidex Headless CMS -// ========================================================================== -// Copyright (c) Squidex UG (haftungsbeschraenkt) -// All rights reserved. Licensed under the MIT license. -// ========================================================================== - -using System.Collections.Generic; -using Squidex.Infrastructure; -using Squidex.Infrastructure.Json.Objects; - -namespace Squidex.Domain.Apps.Core.ExtractReferenceIds -{ - public static class ReferencesExtensions - { - public static void AddIds(this IJsonValue? value, HashSet result, int take) - { - var added = 0; - - if (value is JsonArray array) - { - foreach (var id in array) - { - if (id is JsonString s) - { - result.Add(DomainId.Create(s.Value)); - - added++; - - if (added >= take) - { - break; - } - } - } - } - } - } -} diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/GenerateEdmSchema/EdmTypeVisitor.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/GenerateEdmSchema/EdmTypeVisitor.cs index 82066d719..04c6ada47 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/GenerateEdmSchema/EdmTypeVisitor.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/GenerateEdmSchema/EdmTypeVisitor.cs @@ -37,11 +37,6 @@ namespace Squidex.Domain.Apps.Core.GenerateEdmSchema return field.Accept(Instance, args); } - public IEdmTypeReference? CreateEdmType(IField field, Args args) - { - return field.Accept(this, args); - } - public IEdmTypeReference? Visit(IArrayField field, Args args) { var (fieldEdmType, created) = args.Factory($"Data.{field.Name.ToPascalCase()}.Item"); diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/GenerateJsonSchema/ContentSchemaBuilder.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/GenerateJsonSchema/ContentSchemaBuilder.cs index 95575dd34..af00a560e 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/GenerateJsonSchema/ContentSchemaBuilder.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/GenerateJsonSchema/ContentSchemaBuilder.cs @@ -32,8 +32,8 @@ namespace Squidex.Domain.Apps.Core.GenerateJsonSchema ["createdBy"] = SchemaBuilder.StringProperty($"The user that has created the {schemaName} content.", true), ["lastModified"] = SchemaBuilder.DateTimeProperty($"The date and time when the {schemaName} content has been modified last.", true), ["lastModifiedBy"] = SchemaBuilder.StringProperty($"The user that has updated the {schemaName} content last.", true), - ["newStatus"] = SchemaBuilder.StringProperty($"The new status of the content.", false), - ["status"] = SchemaBuilder.StringProperty($"The status of the content.", true) + ["newStatus"] = SchemaBuilder.StringProperty("The new status of the content."), + ["status"] = SchemaBuilder.StringProperty("The status of the content.", true) }, Type = JsonObjectType.Object }; diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/HandleRules/Result.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/HandleRules/Result.cs index 160259a99..55daa8db2 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/HandleRules/Result.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/HandleRules/Result.cs @@ -12,7 +12,7 @@ namespace Squidex.Domain.Apps.Core.HandleRules { public sealed class Result { - public Exception? Exception { get; private set; } + public Exception? Exception { get; private init; } public string? Dump { get; private set; } diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/HandleRules/RuleService.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/HandleRules/RuleService.cs index 898ec8ba7..3ebdd5b04 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/HandleRules/RuleService.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/HandleRules/RuleService.cs @@ -144,7 +144,7 @@ namespace Squidex.Domain.Apps.Core.HandleRules return result; } - if (!(@event.Payload is AppEvent)) + if (@event.Payload is not AppEvent) { return result; } diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/IUrlGenerator.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/IUrlGenerator.cs index f9ed5c329..39750a3ba 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/IUrlGenerator.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/IUrlGenerator.cs @@ -18,8 +18,6 @@ namespace Squidex.Domain.Apps.Core string? AssetThumbnail(NamedId appId, string idOrSlug, AssetType assetType); - string AppSettingsUI(NamedId appId); - string AssetsUI(NamedId appId, string? query = null); string AssetContent(NamedId appId, string idOrSlug); diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/ContentWrapper/ContentFieldObject.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/ContentWrapper/ContentFieldObject.cs index de870cb10..6582f9947 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/ContentWrapper/ContentFieldObject.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/ContentWrapper/ContentFieldObject.cs @@ -102,7 +102,7 @@ namespace Squidex.Domain.Apps.Core.Scripting.ContentWrapper var propertyName = property.AsString(); - valueProperties.GetOrAdd(propertyName, k => new ContentFieldProperty(this)).Value = value; + valueProperties.GetOrAdd(propertyName, _ => new ContentFieldProperty(this)).Value = value; return true; } diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/ContentWrapper/JsonMapper.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/ContentWrapper/JsonMapper.cs index db62a685a..a5f246f33 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/ContentWrapper/JsonMapper.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/ContentWrapper/JsonMapper.cs @@ -24,7 +24,7 @@ namespace Squidex.Domain.Apps.Core.Scripting.ContentWrapper switch (value) { - case JsonNull _: + case JsonNull: return JsValue.Null; case JsonString s: return new JsString(s.Value); diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/JintScriptEngine.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/JintScriptEngine.cs index cc7e42ed8..b8b2912a2 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/JintScriptEngine.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/JintScriptEngine.cs @@ -84,7 +84,7 @@ namespace Squidex.Domain.Apps.Core.Scripting { var context = CreateEngine(vars, options, tcs.TrySetException, true, cts.Token); - context.Engine.SetValue("complete", new Action(value => + context.Engine.SetValue("complete", new Action(_ => { tcs.TrySetResult(vars.Data!); })); @@ -135,12 +135,12 @@ namespace Squidex.Domain.Apps.Core.Scripting private ExecutionContext CreateEngine(ScriptVars vars, ScriptOptions options, ExceptionHandler? exceptionHandler = null, bool async = false, CancellationToken ct = default) { - var engine = new Engine(options => + var engine = new Engine(engineOptions => { - options.AddObjectConverter(DefaultConverter.Instance); - options.SetReferencesResolver(NullPropagation.Instance); - options.Strict(); - options.TimeoutInterval(TimeoutScript); + engineOptions.AddObjectConverter(DefaultConverter.Instance); + engineOptions.SetReferencesResolver(NullPropagation.Instance); + engineOptions.Strict(); + engineOptions.TimeoutInterval(TimeoutScript); }); if (options.CanDisallow) diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/NullPropagation.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/NullPropagation.cs index adc3d577b..7aff9fd39 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/NullPropagation.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/NullPropagation.cs @@ -30,7 +30,7 @@ namespace Squidex.Domain.Apps.Core.Scripting public bool TryGetCallable(Engine engine, object reference, out JsValue value) { - value = new ClrFunctionInstance(engine, "anonymous", (thisObj, values) => thisObj); + value = new ClrFunctionInstance(engine, "anonymous", (thisObj, _) => thisObj); return true; } diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/Templates/Extensions/ContentFluidExtension.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/Templates/Extensions/ContentFluidExtension.cs index 067f093e2..894d69844 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/Templates/Extensions/ContentFluidExtension.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/Templates/Extensions/ContentFluidExtension.cs @@ -22,7 +22,7 @@ namespace Squidex.Domain.Apps.Core.Templates.Extensions FluidValue.SetTypeMapping(x => FluidValue.Create(x.Value)); FluidValue.SetTypeMapping(x => FluidValue.Create(x.Value)); FluidValue.SetTypeMapping(x => FluidValue.Create(x.Value)); - FluidValue.SetTypeMapping(x => FluidValue.Create(null)); + FluidValue.SetTypeMapping(_ => FluidValue.Create(null)); memberAccessStrategy.Register( (value, name) => value.GetOrDefault(name)); diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/DefaultFieldValueValidatorsFactory.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/DefaultFieldValueValidatorsFactory.cs index 95b751acd..4468c71e2 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/DefaultFieldValueValidatorsFactory.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/DefaultFieldValueValidatorsFactory.cs @@ -18,7 +18,7 @@ namespace Squidex.Domain.Apps.Core.ValidateContent { private static readonly DefaultFieldValueValidatorsFactory Instance = new DefaultFieldValueValidatorsFactory(); - public struct Args + public readonly struct Args { public readonly ValidatorContext Context; diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/FieldBagValidatorsFactory.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/FieldBagValidatorsFactory.cs deleted file mode 100644 index eec5149b9..000000000 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/FieldBagValidatorsFactory.cs +++ /dev/null @@ -1,83 +0,0 @@ -// ========================================================================== -// Squidex Headless CMS -// ========================================================================== -// Copyright (c) Squidex UG (haftungsbeschränkt) -// All rights reserved. Licensed under the MIT license. -// ========================================================================== - -using System.Collections.Generic; -using Squidex.Domain.Apps.Core.Schemas; -using Squidex.Domain.Apps.Core.ValidateContent.Validators; -using Squidex.Infrastructure; - -namespace Squidex.Domain.Apps.Core.ValidateContent -{ - internal sealed class FieldBagValidatorsFactory : IFieldVisitor, None> - { - private static readonly FieldBagValidatorsFactory Instance = new FieldBagValidatorsFactory(); - - private FieldBagValidatorsFactory() - { - } - - public static IEnumerable CreateValidators(IField field) - { - return field.Accept(Instance, None.Value); - } - - public IEnumerable Visit(IArrayField field, None args) - { - yield break; - } - - public IEnumerable Visit(IField field, None args) - { - yield break; - } - - public IEnumerable Visit(IField field, None args) - { - yield break; - } - - public IEnumerable Visit(IField field, None args) - { - yield break; - } - - public IEnumerable Visit(IField field, None args) - { - yield break; - } - - public IEnumerable Visit(IField field, None args) - { - yield break; - } - - public IEnumerable Visit(IField field, None args) - { - yield break; - } - - public IEnumerable Visit(IField field, None args) - { - yield break; - } - - public IEnumerable Visit(IField field, None args) - { - yield break; - } - - public IEnumerable Visit(IField field, None args) - { - yield break; - } - - public IEnumerable Visit(IField field, None args) - { - yield return NoValueValidator.Instance; - } - } -} diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/ValidationContext.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/ValidationContext.cs index a58fb6c25..5e8dbc671 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/ValidationContext.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/ValidationContext.cs @@ -17,7 +17,7 @@ namespace Squidex.Domain.Apps.Core.ValidateContent { public ImmutableQueue Path { get; private set; } = ImmutableQueue.Empty; - public IJsonSerializer JsonSerializer { get; private set; } + public IJsonSerializer JsonSerializer { get; } public DomainId ContentId { get; } diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/AllowedValuesValidator.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/AllowedValuesValidator.cs index ca15f797c..7b1f2badf 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/AllowedValuesValidator.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/AllowedValuesValidator.cs @@ -31,7 +31,7 @@ namespace Squidex.Domain.Apps.Core.ValidateContent.Validators public Task ValidateAsync(object? value, ValidationContext context, AddError addError) { - if (value != null && value is TValue typedValue && !allowedValues.Contains(typedValue)) + if (value is TValue typedValue && !allowedValues.Contains(typedValue)) { addError(context.Path, T.Get("contents.validation.notAllowed")); } diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/AssetsValidator.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/AssetsValidator.cs index 9e99cf2b5..9fb6b4b98 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/AssetsValidator.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/AssetsValidator.cs @@ -50,7 +50,7 @@ namespace Squidex.Domain.Apps.Core.ValidateContent.Validators { var foundIds = new List(); - if (value is ICollection assetIds && assetIds.Count > 0) + if (value is ICollection { Count: > 0 } assetIds) { var assets = await checkAssets(assetIds); var index = 0; diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/CollectionItemValidator.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/CollectionItemValidator.cs index 33536b378..f6b08318d 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/CollectionItemValidator.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/CollectionItemValidator.cs @@ -25,7 +25,7 @@ namespace Squidex.Domain.Apps.Core.ValidateContent.Validators public async Task ValidateAsync(object? value, ValidationContext context, AddError addError) { - if (value is ICollection items && items.Count > 0) + if (value is ICollection { Count: > 0 } items) { var innerTasks = new List(); var index = 1; diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/CollectionValidator.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/CollectionValidator.cs index c109cc89a..51ff070ff 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/CollectionValidator.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/CollectionValidator.cs @@ -20,7 +20,7 @@ namespace Squidex.Domain.Apps.Core.ValidateContent.Validators public CollectionValidator(bool isRequired, int? minItems = null, int? maxItems = null) { - if (minItems.HasValue && maxItems.HasValue && minItems > maxItems) + if (minItems.HasValue && minItems > maxItems) { throw new ArgumentException("Min length must be greater than max length.", nameof(minItems)); } diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/RangeValidator.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/RangeValidator.cs index fdfb79c7a..b7e47214c 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/RangeValidator.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/RangeValidator.cs @@ -29,7 +29,7 @@ namespace Squidex.Domain.Apps.Core.ValidateContent.Validators public Task ValidateAsync(object? value, ValidationContext context, AddError addError) { - if (value != null && value is TValue typedValue) + if (value is TValue typedValue) { if (min.HasValue && max.HasValue) { diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/ReferencesValidator.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/ReferencesValidator.cs index 226bfbedf..603a89be0 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/ReferencesValidator.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/ReferencesValidator.cs @@ -48,7 +48,7 @@ namespace Squidex.Domain.Apps.Core.ValidateContent.Validators { var foundIds = new List(); - if (value is ICollection contentIds && contentIds.Count > 0) + if (value is ICollection { Count: > 0 } contentIds) { var references = await checkReferences(contentIds.ToHashSet()); var index = 0; diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/StringTextValidator.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/StringTextValidator.cs index 6cad54c40..d0a06793b 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/StringTextValidator.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/Validators/StringTextValidator.cs @@ -69,12 +69,12 @@ namespace Squidex.Domain.Apps.Core.ValidateContent.Validators } else { - if (minWords.HasValue && words < minWords) + if (words < minWords) { addError(context.Path, T.Get("contents.validation.minWords", new { min = minWords })); } - if (maxWords.HasValue && words > maxWords) + if (words > maxWords) { addError(context.Path, T.Get("contents.validation.maxWords", new { max = maxWords })); } @@ -98,12 +98,12 @@ namespace Squidex.Domain.Apps.Core.ValidateContent.Validators } else { - if (minCharacters.HasValue && characters < minCharacters) + if (characters < minCharacters) { addError(context.Path, T.Get("contents.validation.minNormalCharacters", new { min = minCharacters })); } - if (maxCharacters.HasValue && characters > maxCharacters) + if (characters > maxCharacters) { addError(context.Path, T.Get("contents.validation.maxCharacters", new { max = maxCharacters })); } diff --git a/backend/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/Operations/AdaptionVisitor.cs b/backend/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/Operations/AdaptionVisitor.cs index 651bba150..6c682df04 100644 --- a/backend/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/Operations/AdaptionVisitor.cs +++ b/backend/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/Operations/AdaptionVisitor.cs @@ -18,7 +18,7 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Contents.Operations { private static readonly AdaptionVisitor Instance = new AdaptionVisitor(); - public struct Args + public readonly struct Args { public readonly DomainId AppId; @@ -43,7 +43,7 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Contents.Operations { var result = nodeIn; - var (path, op, value) = nodeIn; + var (path, _, value) = nodeIn; var clrValue = value.Value; diff --git a/backend/src/Squidex.Domain.Apps.Entities.MongoDb/History/MongoHistoryEventRepository.cs b/backend/src/Squidex.Domain.Apps.Entities.MongoDb/History/MongoHistoryEventRepository.cs index 95d72a3d5..df83a8df3 100644 --- a/backend/src/Squidex.Domain.Apps.Entities.MongoDb/History/MongoHistoryEventRepository.cs +++ b/backend/src/Squidex.Domain.Apps.Entities.MongoDb/History/MongoHistoryEventRepository.cs @@ -80,10 +80,5 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.History await Collection.BulkWriteAsync(writes); } } - - public Task RemoveAsync(DomainId appId) - { - return Collection.DeleteManyAsync(x => x.AppId == appId); - } } } diff --git a/backend/src/Squidex.Domain.Apps.Entities/Apps/BackupApps.cs b/backend/src/Squidex.Domain.Apps.Entities/Apps/BackupApps.cs index 7590ce5cc..899b94a6f 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Apps/BackupApps.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Apps/BackupApps.cs @@ -48,7 +48,7 @@ namespace Squidex.Domain.Apps.Entities.Apps case AppContributorAssigned appContributorAssigned: context.UserMapping.Backup(appContributorAssigned.ContributorId); break; - case AppImageUploaded _: + case AppImageUploaded: await WriteAssetAsync(context.AppId, context.Writer); break; } @@ -72,7 +72,7 @@ namespace Squidex.Domain.Apps.Entities.Apps break; } - case AppImageUploaded _: + case AppImageUploaded: { await ReadAssetAsync(context.AppId, context.Reader); diff --git a/backend/src/Squidex.Domain.Apps.Entities/Apps/DomainObject/AppDomainObject.State.cs b/backend/src/Squidex.Domain.Apps.Entities/Apps/DomainObject/AppDomainObject.State.cs index 1a5d53096..cceda46fd 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Apps/DomainObject/AppDomainObject.State.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Apps/DomainObject/AppDomainObject.State.cs @@ -146,7 +146,7 @@ namespace Squidex.Domain.Apps.Entities.Apps.DomainObject return l; }); - case AppArchived _: + case AppArchived: { Plan = null; diff --git a/backend/src/Squidex.Domain.Apps.Entities/Apps/DomainObject/AppDomainObject.cs b/backend/src/Squidex.Domain.Apps.Entities/Apps/DomainObject/AppDomainObject.cs index eb68ce085..175ea51a6 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Apps/DomainObject/AppDomainObject.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Apps/DomainObject/AppDomainObject.cs @@ -295,7 +295,7 @@ namespace Squidex.Domain.Apps.Entities.Apps.DomainObject switch (result) { - case PlanChangedResult _: + case PlanChangedResult: ChangePlan(c); break; } diff --git a/backend/src/Squidex.Domain.Apps.Entities/Apps/Indexes/AppsIndex.cs b/backend/src/Squidex.Domain.Apps.Entities/Apps/Indexes/AppsIndex.cs index 7a12740de..975047ebc 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Apps/Indexes/AppsIndex.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Apps/Indexes/AppsIndex.cs @@ -244,7 +244,7 @@ namespace Squidex.Domain.Apps.Entities.Apps.Indexes await RemoveContributorAsync(removeContributor); break; - case ArchiveApp _: + case ArchiveApp: await ArchiveAppAsync(app); break; } diff --git a/backend/src/Squidex.Domain.Apps.Entities/Apps/RolePermissionsProvider.cs b/backend/src/Squidex.Domain.Apps.Entities/Apps/RolePermissionsProvider.cs index 142a220fc..e47e415d4 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Apps/RolePermissionsProvider.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Apps/RolePermissionsProvider.cs @@ -12,8 +12,6 @@ using Squidex.Infrastructure; using Squidex.Infrastructure.Security; using Squidex.Shared; -#pragma warning disable IDE0028 // Simplify collection initialization - namespace Squidex.Domain.Apps.Entities.Apps { public sealed class RolePermissionsProvider @@ -65,9 +63,11 @@ namespace Squidex.Domain.Apps.Entities.Apps { var schemas = await appProvider.GetSchemasAsync(app.Id); - var schemaNames = new List(); + var schemaNames = new List + { + Permission.Any + }; - schemaNames.Add(Permission.Any); schemaNames.AddRange(schemas.Select(x => x.SchemaDef.Name)); return schemaNames; diff --git a/backend/src/Squidex.Domain.Apps.Entities/Assets/AssetChangedTriggerHandler.cs b/backend/src/Squidex.Domain.Apps.Entities/Assets/AssetChangedTriggerHandler.cs index 2fd9e298b..cca4a2d17 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Assets/AssetChangedTriggerHandler.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Assets/AssetChangedTriggerHandler.cs @@ -84,16 +84,16 @@ namespace Squidex.Domain.Apps.Entities.Assets switch (@event.Payload) { - case AssetCreated _: + case AssetCreated: result.Type = EnrichedAssetEventType.Created; break; - case AssetAnnotated _: + case AssetAnnotated: result.Type = EnrichedAssetEventType.Annotated; break; - case AssetUpdated _: + case AssetUpdated: result.Type = EnrichedAssetEventType.Updated; break; - case AssetDeleted _: + case AssetDeleted: result.Type = EnrichedAssetEventType.Deleted; break; } diff --git a/backend/src/Squidex.Domain.Apps.Entities/Assets/BackupAssets.cs b/backend/src/Squidex.Domain.Apps.Entities/Assets/BackupAssets.cs index 7084a18ed..65921207b 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Assets/BackupAssets.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Assets/BackupAssets.cs @@ -71,7 +71,7 @@ namespace Squidex.Domain.Apps.Entities.Assets { switch (@event.Payload) { - case AssetFolderCreated _: + case AssetFolderCreated: assetFolderIds.Add(@event.Headers.AggregateId()); break; case AssetCreated assetCreated: diff --git a/backend/src/Squidex.Domain.Apps.Entities/Assets/DomainObject/AssetDomainObject.State.cs b/backend/src/Squidex.Domain.Apps.Entities/Assets/DomainObject/AssetDomainObject.State.cs index bab7a66cf..7bfa877d5 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Assets/DomainObject/AssetDomainObject.State.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Assets/DomainObject/AssetDomainObject.State.cs @@ -150,7 +150,7 @@ namespace Squidex.Domain.Apps.Entities.Assets.DomainObject return true; } - case AssetDeleted _: + case AssetDeleted: { IsDeleted = true; diff --git a/backend/src/Squidex.Domain.Apps.Entities/Assets/DomainObject/AssetFolderDomainObject.State.cs b/backend/src/Squidex.Domain.Apps.Entities/Assets/DomainObject/AssetFolderDomainObject.State.cs index 27fc84666..2967937b5 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Assets/DomainObject/AssetFolderDomainObject.State.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Assets/DomainObject/AssetFolderDomainObject.State.cs @@ -57,7 +57,7 @@ namespace Squidex.Domain.Apps.Entities.Assets.DomainObject return true; } - case AssetFolderDeleted _: + case AssetFolderDeleted: { IsDeleted = true; diff --git a/backend/src/Squidex.Domain.Apps.Entities/Assets/Queries/FilterTagTransformer.cs b/backend/src/Squidex.Domain.Apps.Entities/Assets/Queries/FilterTagTransformer.cs index 22710e7d1..4fd4cce41 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Assets/Queries/FilterTagTransformer.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Assets/Queries/FilterTagTransformer.cs @@ -17,7 +17,7 @@ namespace Squidex.Domain.Apps.Entities.Assets.Queries { private static readonly FilterTagTransformer Instance = new FilterTagTransformer(); - public struct Args + public readonly struct Args { public readonly DomainId AppId; diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/BackupContents.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/BackupContents.cs index c016178c5..c1ffd7329 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/BackupContents.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/BackupContents.cs @@ -200,7 +200,7 @@ namespace Squidex.Domain.Apps.Entities.Contents break; - case JsonArray arr: + case JsonArray: break; case JsonObject obj: diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/BulkUpdateCommandMiddleware.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/BulkUpdateCommandMiddleware.cs index 86477e789..3aed7b853 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/BulkUpdateCommandMiddleware.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/BulkUpdateCommandMiddleware.cs @@ -134,7 +134,7 @@ namespace Squidex.Domain.Apps.Entities.Contents { ContentId = id, JobIndex = task.JobIndex, - Exception = exception, + Exception = exception }); } @@ -165,7 +165,7 @@ namespace Squidex.Domain.Apps.Entities.Contents { ContentId = id, JobIndex = task.JobIndex, - Exception = ex, + Exception = ex }); } } @@ -175,7 +175,7 @@ namespace Squidex.Domain.Apps.Entities.Contents task.Results.Add(new BulkUpdateResultItem { JobIndex = task.JobIndex, - Exception = ex, + Exception = ex }); } diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/ContentChangedTriggerHandler.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/ContentChangedTriggerHandler.cs index 50fcc1c66..d50247f41 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/ContentChangedTriggerHandler.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/ContentChangedTriggerHandler.cs @@ -86,10 +86,10 @@ namespace Squidex.Domain.Apps.Entities.Contents switch (@event.Payload) { - case ContentCreated _: + case ContentCreated: result.Type = EnrichedContentEventType.Created; break; - case ContentDeleted _: + case ContentDeleted: result.Type = EnrichedContentEventType.Deleted; break; @@ -111,7 +111,7 @@ namespace Squidex.Domain.Apps.Entities.Contents break; } - case ContentUpdated _: + case ContentUpdated: { result.Type = EnrichedContentEventType.Updated; diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/DomainObject/ContentDomainObject.State.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/DomainObject/ContentDomainObject.State.cs index f9e28c8b9..4d15c390e 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/DomainObject/ContentDomainObject.State.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/DomainObject/ContentDomainObject.State.cs @@ -82,7 +82,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.DomainObject break; } - case ContentDraftDeleted _: + case ContentDraftDeleted: { NewVersion = null; @@ -116,7 +116,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.DomainObject break; } - case ContentSchedulingCancelled _: + case ContentSchedulingCancelled: { ScheduleJob = null; @@ -144,7 +144,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.DomainObject break; } - case ContentDeleted _: + case ContentDeleted: { IsDeleted = true; diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/GraphQLExecutionContext.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/GraphQLExecutionContext.cs index 92f7327e8..d66dc9370 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/GraphQLExecutionContext.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/GraphQLExecutionContext.cs @@ -75,7 +75,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL execution.UserContext = this; } - public override async Task FindAssetAsync(DomainId id) + public async Task FindAssetAsync(DomainId id) { var dataLoader = GetAssetsLoader(); diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/AppMutationsGraphType.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/AppMutationsGraphType.cs index 4f2924886..3704b9c66 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/AppMutationsGraphType.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/AppMutationsGraphType.cs @@ -9,7 +9,7 @@ using System.Collections.Generic; using System.Linq; using GraphQL.Types; using Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents; -using Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Utils; +using Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Primitives; namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types { diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Assets/AssetActions.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Assets/AssetActions.cs index e0174eff8..10d0a25d7 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Assets/AssetActions.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Assets/AssetActions.cs @@ -69,7 +69,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets new QueryArgument(AllTypes.None) { Name = "top", - Description = $"Optional number of assets to take.", + Description = "Optional number of assets to take.", DefaultValue = null, ResolvedType = AllTypes.Int }, diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Assets/AssetGraphType.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Assets/AssetGraphType.cs index 656923e68..acac0a759 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Assets/AssetGraphType.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Assets/AssetGraphType.cs @@ -198,7 +198,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets Name = "tags", ResolvedType = AllTypes.NonNullStrings, Resolver = Resolve(x => x.TagNames), - Description = "The asset tags.", + Description = "The asset tags." }); AddField(new FieldType diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentActions.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentActions.cs index 3fcbeb31c..5ceba1de1 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentActions.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentActions.cs @@ -104,7 +104,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents new QueryArgument(AllTypes.None) { Name = "top", - Description = $"Optional number of contents to take.", + Description = "Optional number of contents to take.", DefaultValue = null, ResolvedType = AllTypes.Int }, diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentGraphType.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentGraphType.cs index a29a4d870..73e161606 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentGraphType.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentGraphType.cs @@ -51,7 +51,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents Name = "url", ResolvedType = AllTypes.NonNullString, Resolver = ContentResolvers.Url, - Description = $"The url to the content." + Description = "The url to the content." }); var contentDataType = new DataGraphType(builder, schemaInfo); @@ -63,7 +63,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents Name = "data", ResolvedType = new NonNullGraphType(contentDataType), Resolver = ContentResolvers.Data, - Description = $"The data of the content." + Description = "The data of the content." }); } @@ -76,7 +76,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents Name = "flatData", ResolvedType = new NonNullGraphType(contentDataTypeFlat), Resolver = ContentResolvers.FlatData, - Description = $"The flat data of the content." + Description = "The flat data of the content." }); } diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/DataInputGraphType.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/DataInputGraphType.cs index 1fa493d5e..6e3886901 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/DataInputGraphType.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/DataInputGraphType.cs @@ -47,7 +47,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents { Name = fieldInfo.FieldName, ResolvedType = fieldGraphType, - Resolver = null, + Resolver = null }).WithSourceName(fieldInfo); } } diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/FieldInputVisitor.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/FieldInputVisitor.cs index 72dd6644c..922a8b56c 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/FieldInputVisitor.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/FieldInputVisitor.cs @@ -7,9 +7,8 @@ using GraphQL.Types; using Squidex.Domain.Apps.Core.Schemas; -using Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents; -namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types +namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents { internal sealed class FieldInputVisitor : IFieldVisitor { diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/SchemaInfos.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/SchemaInfos.cs index d9d6b6b6d..b22cf1dca 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/SchemaInfos.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/SchemaInfos.cs @@ -15,7 +15,7 @@ using Squidex.Text; #pragma warning disable SA1649 // File name should match first type name -namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types +namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents { internal sealed class SchemaInfo { diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Extensions.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Extensions.cs index 05346e589..8f760e983 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Extensions.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Extensions.cs @@ -10,7 +10,7 @@ using System.Linq; using GraphQL; using GraphQL.Types; using GraphQL.Utilities; -using Squidex.Domain.Apps.Core.Schemas; +using Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents; using Squidex.Domain.Apps.Entities.Schemas; using Squidex.Infrastructure; using Squidex.Infrastructure.ObjectPool; @@ -171,7 +171,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types } } - if (type is IObjectGraphType objectGraphType && objectGraphType.ResolvedInterfaces != null) + if (type is IObjectGraphType { ResolvedInterfaces: { } } objectGraphType) { foreach (var @interface in objectGraphType.ResolvedInterfaces) { @@ -179,7 +179,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types } } - if (type is IAbstractGraphType abstractGraphType && abstractGraphType.PossibleTypes != null) + if (type is IAbstractGraphType { PossibleTypes: { } } abstractGraphType) { foreach (var possibleType in abstractGraphType.PossibleTypes) { diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Primitives/EntitySavedGraphType.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Primitives/EntitySavedGraphType.cs index 5e87d5235..fa60fcf80 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Primitives/EntitySavedGraphType.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Primitives/EntitySavedGraphType.cs @@ -9,7 +9,7 @@ using GraphQL.Resolvers; using GraphQL.Types; using Squidex.Infrastructure.Commands; -namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Utils +namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Primitives { internal sealed class EntitySavedGraphType : ObjectGraphType { diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/Queries/ContentQueryParser.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/Queries/ContentQueryParser.cs index c4fcb08b4..850bcf187 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/Queries/ContentQueryParser.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/Queries/ContentQueryParser.cs @@ -247,8 +247,8 @@ namespace Squidex.Domain.Apps.Entities.Contents.Queries [nameof(IContentEntity.CreatedBy).ToCamelCase()] = SchemaBuilder.StringProperty($"The user that has created the {name} content.", true), [nameof(IContentEntity.LastModified).ToCamelCase()] = SchemaBuilder.DateTimeProperty($"The date and time when the {name} content has been modified last.", true), [nameof(IContentEntity.LastModifiedBy).ToCamelCase()] = SchemaBuilder.StringProperty($"The user that has updated the {name} content last.", true), - [nameof(IContentEntity.NewStatus).ToCamelCase()] = SchemaBuilder.StringProperty($"The new status of the content.", false), - [nameof(IContentEntity.Status).ToCamelCase()] = SchemaBuilder.StringProperty($"The status of the content.", true) + [nameof(IContentEntity.NewStatus).ToCamelCase()] = SchemaBuilder.StringProperty("The new status of the content."), + [nameof(IContentEntity.Status).ToCamelCase()] = SchemaBuilder.StringProperty("The status of the content.", true) }, Type = JsonObjectType.Object }; diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/Queries/GeoQueryTransformer.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/Queries/GeoQueryTransformer.cs index 5b98ddeb8..7ea229677 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/Queries/GeoQueryTransformer.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/Queries/GeoQueryTransformer.cs @@ -17,7 +17,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.Queries { public static readonly GeoQueryTransformer Instance = new GeoQueryTransformer(); - public struct Args + public readonly struct Args { public readonly ITextIndex TextIndex; diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/Queries/QueryExecutionContext.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/Queries/QueryExecutionContext.cs index 659dd0d35..6e37f1522 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/Queries/QueryExecutionContext.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/Queries/QueryExecutionContext.cs @@ -39,56 +39,6 @@ namespace Squidex.Domain.Apps.Entities.Contents.Queries return contentQuery.FindAsync(Context, schemaIdOrName, id, version); } - public virtual async Task FindAssetAsync(DomainId id) - { - var asset = cachedAssets.GetOrDefault(id); - - if (asset == null) - { - await maxRequests.WaitAsync(); - try - { - asset = await assetQuery.FindAsync(Context, id); - } - finally - { - maxRequests.Release(); - } - - if (asset != null) - { - cachedAssets[asset.Id] = asset; - } - } - - return asset; - } - - public virtual async Task FindContentAsync(DomainId schemaId, DomainId id) - { - var content = cachedContents.GetOrDefault(id); - - if (content == null) - { - await maxRequests.WaitAsync(); - try - { - content = await contentQuery.FindAsync(Context, schemaId.ToString(), id); - } - finally - { - maxRequests.Release(); - } - - if (content != null) - { - cachedContents[content.Id] = content; - } - } - - return content; - } - public virtual async Task> QueryAssetsAsync(string odata) { var q = Q.Empty.WithODataQuery(odata); diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/SingletonCommandMiddleware.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/SingletonCommandMiddleware.cs index 2f5b9dcef..6eaa01f6e 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/SingletonCommandMiddleware.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/SingletonCommandMiddleware.cs @@ -21,9 +21,7 @@ namespace Squidex.Domain.Apps.Entities.Contents { await next(context); - if (context.IsCompleted && - context.Command is CreateSchema createSchema && - createSchema.IsSingleton) + if (context.IsCompleted && context.Command is CreateSchema { IsSingleton: true } createSchema) { var schemaId = NamedId.Of(createSchema.SchemaId, createSchema.Name); diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/Text/Elastic/CommandFactory.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/Text/Elastic/CommandFactory.cs index e4d5b0c7f..f4982575e 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/Text/Elastic/CommandFactory.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/Text/Elastic/CommandFactory.cs @@ -34,7 +34,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.Text.Elastic index = new { _id = upsert.DocId, - _index = indexName, + _index = indexName } }); @@ -58,7 +58,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.Text.Elastic update = new { _id = update.DocId, - _index = indexName, + _index = indexName } }); @@ -79,7 +79,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.Text.Elastic delete = new { _id = delete.DocId, - _index = indexName, + _index = indexName } }); } diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/Text/SearchContext.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/Text/SearchContext.cs deleted file mode 100644 index 7b6e48745..000000000 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/Text/SearchContext.cs +++ /dev/null @@ -1,18 +0,0 @@ -// ========================================================================== -// Squidex Headless CMS -// ========================================================================== -// Copyright (c) Squidex UG (haftungsbeschraenkt) -// All rights reserved. Licensed under the MIT license. -// ========================================================================== - -using System.Collections.Generic; - -namespace Squidex.Domain.Apps.Entities.Contents.Text -{ - public sealed class SearchContext - { - public SearchScope Scope { get; set; } - - public HashSet Languages { get; set; } - } -} diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/Text/WriteonlyGeoJsonConverter.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/Text/WriteonlyGeoJsonConverter.cs deleted file mode 100644 index e4822df9c..000000000 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/Text/WriteonlyGeoJsonConverter.cs +++ /dev/null @@ -1,16 +0,0 @@ -// ========================================================================== -// Squidex Headless CMS -// ========================================================================== -// Copyright (c) Squidex UG (haftungsbeschraenkt) -// All rights reserved. Licensed under the MIT license. -// ========================================================================== - -using GeoJSON.Net.Converters; - -namespace Squidex.Domain.Apps.Entities.Contents.Text -{ - public sealed class WriteonlyGeoJsonConverter : GeoJsonConverter - { - public override bool CanWrite => false; - } -} diff --git a/backend/src/Squidex.Domain.Apps.Entities/History/NotifoService.cs b/backend/src/Squidex.Domain.Apps.Entities/History/NotifoService.cs index 84b82eddd..460264141 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/History/NotifoService.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/History/NotifoService.cs @@ -96,7 +96,7 @@ namespace Squidex.Domain.Apps.Entities.History FullName = user.Claims.DisplayName(), PreferredLanguage = "en", PreferredTimezone = null, - Settings = settings, + Settings = settings }; if (user.Email.IsEmail()) @@ -149,8 +149,14 @@ namespace Squidex.Domain.Apps.Entities.History }; publishRequest.Properties["SquidexApp"] = comment.AppId.Name; - publishRequest.Preformatted = new NotificationFormattingDto(); - publishRequest.Preformatted.Subject["en"] = comment.Text; + + publishRequest.Preformatted = new NotificationFormattingDto + { + Subject = + { + ["en"] = comment.Text + } + }; if (comment.Url?.IsAbsoluteUri == true) { diff --git a/backend/src/Squidex.Domain.Apps.Entities/Notifications/NotificationEmailSender.cs b/backend/src/Squidex.Domain.Apps.Entities/Notifications/NotificationEmailSender.cs index 4a43b9c8b..94c5c9776 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Notifications/NotificationEmailSender.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Notifications/NotificationEmailSender.cs @@ -26,15 +26,15 @@ namespace Squidex.Domain.Apps.Entities.Notifications private sealed class TemplatesVars { - public IUser User { get; set; } + public IUser? User { get; set; } - public IUser? Assigner { get; set; } + public IUser? Assigner { get; init; } - public string AppName { get; set; } + public string AppName { get; init; } - public long? ApiCalls { get; set; } + public long? ApiCalls { get; init; } - public long? ApiCallsLimit { get; set; } + public long? ApiCallsLimit { get; init; } public string URL { get; set; } } diff --git a/backend/src/Squidex.Domain.Apps.Entities/Rules/DomainObject/RuleDomainObject.State.cs b/backend/src/Squidex.Domain.Apps.Entities/Rules/DomainObject/RuleDomainObject.State.cs index c745dfc01..183664e38 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Rules/DomainObject/RuleDomainObject.State.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Rules/DomainObject/RuleDomainObject.State.cs @@ -67,21 +67,21 @@ namespace Squidex.Domain.Apps.Entities.Rules.DomainObject break; } - case RuleEnabled _: + case RuleEnabled: { RuleDef = RuleDef.Enable(); break; } - case RuleDisabled _: + case RuleDisabled: { RuleDef = RuleDef.Disable(); break; } - case RuleDeleted _: + case RuleDeleted: { IsDeleted = true; diff --git a/backend/src/Squidex.Domain.Apps.Entities/Schemas/DomainObject/SchemaDomainObject.State.cs b/backend/src/Squidex.Domain.Apps.Entities/Schemas/DomainObject/SchemaDomainObject.State.cs index 663689318..8618ae193 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Schemas/DomainObject/SchemaDomainObject.State.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Schemas/DomainObject/SchemaDomainObject.State.cs @@ -118,14 +118,14 @@ namespace Squidex.Domain.Apps.Entities.Schemas.DomainObject break; } - case SchemaPublished _: + case SchemaPublished: { SchemaDef = SchemaDef.Publish(); break; } - case SchemaUnpublished _: + case SchemaUnpublished: { SchemaDef = SchemaDef.Unpublish(); @@ -195,7 +195,7 @@ namespace Squidex.Domain.Apps.Entities.Schemas.DomainObject break; } - case SchemaDeleted _: + case SchemaDeleted: { IsDeleted = true; diff --git a/backend/src/Squidex.Domain.Apps.Entities/Schemas/SchemaChangedTriggerHandler.cs b/backend/src/Squidex.Domain.Apps.Entities/Schemas/SchemaChangedTriggerHandler.cs index e63caf380..c9833823d 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Schemas/SchemaChangedTriggerHandler.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Schemas/SchemaChangedTriggerHandler.cs @@ -37,23 +37,23 @@ namespace Squidex.Domain.Apps.Entities.Schemas switch (@event.Payload) { - case FieldEvent _: - case SchemaPreviewUrlsConfigured _: - case SchemaScriptsConfigured _: - case SchemaUpdated _: - case ParentFieldEvent _: + case FieldEvent: + case SchemaPreviewUrlsConfigured: + case SchemaScriptsConfigured: + case SchemaUpdated: + case ParentFieldEvent: result.Type = EnrichedSchemaEventType.Updated; break; - case SchemaCreated _: + case SchemaCreated: result.Type = EnrichedSchemaEventType.Created; break; - case SchemaPublished _: + case SchemaPublished: result.Type = EnrichedSchemaEventType.Published; break; - case SchemaUnpublished _: + case SchemaUnpublished: result.Type = EnrichedSchemaEventType.Unpublished; break; - case SchemaDeleted _: + case SchemaDeleted: result.Type = EnrichedSchemaEventType.Deleted; break; default: diff --git a/backend/src/Squidex.Infrastructure.MongoDb/EventSourcing/Filtering.cs b/backend/src/Squidex.Infrastructure.MongoDb/EventSourcing/Filtering.cs index 5f6d502c3..2c96a52be 100644 --- a/backend/src/Squidex.Infrastructure.MongoDb/EventSourcing/Filtering.cs +++ b/backend/src/Squidex.Infrastructure.MongoDb/EventSourcing/Filtering.cs @@ -12,11 +12,6 @@ namespace Squidex.Infrastructure.EventSourcing { internal static class Filtering { - public static string CreateIndexPath(string property) - { - return $"Events.Metadata.{property}"; - } - public static FilterDefinition ByPosition(StreamPosition streamPosition) { if (streamPosition.IsEndOfCommit) diff --git a/backend/src/Squidex.Infrastructure/DelegateDisposable.cs b/backend/src/Squidex.Infrastructure/DelegateDisposable.cs deleted file mode 100644 index bbdbb0262..000000000 --- a/backend/src/Squidex.Infrastructure/DelegateDisposable.cs +++ /dev/null @@ -1,28 +0,0 @@ -// ========================================================================== -// Squidex Headless CMS -// ========================================================================== -// Copyright (c) Squidex UG (haftungsbeschraenkt) -// All rights reserved. Licensed under the MIT license. -// ========================================================================== - -using System; - -namespace Squidex.Infrastructure -{ - public sealed class DelegateDisposable : IDisposable - { - private readonly Action action; - - public DelegateDisposable(Action action) - { - Guard.NotNull(action, nameof(action)); - - this.action = action; - } - - public void Dispose() - { - action(); - } - } -} diff --git a/backend/src/Squidex.Infrastructure/EventSourcing/Grains/BatchSubscriber.cs b/backend/src/Squidex.Infrastructure/EventSourcing/Grains/BatchSubscriber.cs index 0fa79dac7..3657c27bc 100644 --- a/backend/src/Squidex.Infrastructure/EventSourcing/Grains/BatchSubscriber.cs +++ b/backend/src/Squidex.Infrastructure/EventSourcing/Grains/BatchSubscriber.cs @@ -27,7 +27,7 @@ namespace Squidex.Infrastructure.EventSourcing.Grains private sealed class Job { - public StoredEvent? StoredEvent { get; set; } + public StoredEvent? StoredEvent { get; init; } public Exception? Exception { get; set; } @@ -35,7 +35,7 @@ namespace Squidex.Infrastructure.EventSourcing.Grains public bool ShouldHandle { get; set; } - public object Sender { get; set; } + public object Sender { get; init; } } public BatchSubscriber( diff --git a/backend/src/Squidex.Infrastructure/Json/Newtonsoft/ConverterContractResolver.cs b/backend/src/Squidex.Infrastructure/Json/Newtonsoft/ConverterContractResolver.cs index dced0314d..eaa1a8f83 100644 --- a/backend/src/Squidex.Infrastructure/Json/Newtonsoft/ConverterContractResolver.cs +++ b/backend/src/Squidex.Infrastructure/Json/Newtonsoft/ConverterContractResolver.cs @@ -62,7 +62,7 @@ namespace Squidex.Infrastructure.Json.Newtonsoft protected override JsonConverter? ResolveContractConverter(Type objectType) { - JsonConverter? result = base.ResolveContractConverter(objectType); + var result = base.ResolveContractConverter(objectType); if (result != null) { diff --git a/backend/src/Squidex.Infrastructure/Json/Newtonsoft/JsonValueConverter.cs b/backend/src/Squidex.Infrastructure/Json/Newtonsoft/JsonValueConverter.cs index 994e434cb..478e07328 100644 --- a/backend/src/Squidex.Infrastructure/Json/Newtonsoft/JsonValueConverter.cs +++ b/backend/src/Squidex.Infrastructure/Json/Newtonsoft/JsonValueConverter.cs @@ -132,7 +132,7 @@ namespace Squidex.Infrastructure.Json.Newtonsoft { switch (value) { - case JsonNull _: + case JsonNull: writer.WriteNull(); break; case JsonBoolean s: diff --git a/backend/src/Squidex.Infrastructure/Orleans/ILockGrain.cs b/backend/src/Squidex.Infrastructure/Orleans/ILockGrain.cs deleted file mode 100644 index 184529d66..000000000 --- a/backend/src/Squidex.Infrastructure/Orleans/ILockGrain.cs +++ /dev/null @@ -1,19 +0,0 @@ -// ========================================================================== -// Squidex Headless CMS -// ========================================================================== -// Copyright (c) Squidex UG (haftungsbeschraenkt) -// All rights reserved. Licensed under the MIT license. -// ========================================================================== - -using System.Threading.Tasks; -using Orleans; - -namespace Squidex.Infrastructure.Orleans -{ - public interface ILockGrain : IGrainWithStringKey - { - Task AcquireLockAsync(string key); - - Task ReleaseLockAsync(string releaseToken); - } -} diff --git a/backend/src/Squidex.Infrastructure/Orleans/LockGrain.cs b/backend/src/Squidex.Infrastructure/Orleans/LockGrain.cs deleted file mode 100644 index fdcbb742a..000000000 --- a/backend/src/Squidex.Infrastructure/Orleans/LockGrain.cs +++ /dev/null @@ -1,45 +0,0 @@ -// ========================================================================== -// Squidex Headless CMS -// ========================================================================== -// Copyright (c) Squidex UG (haftungsbeschraenkt) -// All rights reserved. Licensed under the MIT license. -// ========================================================================== - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Squidex.Infrastructure.Orleans -{ - public sealed class LockGrain : GrainOfString, ILockGrain - { - private readonly Dictionary locks = new Dictionary(); - - public Task AcquireLockAsync(string key) - { - string? releaseToken = null; - - if (!locks.ContainsKey(key)) - { - releaseToken = Guid.NewGuid().ToString(); - - locks.Add(key, releaseToken); - } - - return Task.FromResult(releaseToken); - } - - public Task ReleaseLockAsync(string releaseToken) - { - var key = locks.FirstOrDefault(x => x.Value == releaseToken).Key; - - if (!string.IsNullOrWhiteSpace(key)) - { - locks.Remove(key); - } - - return Task.CompletedTask; - } - } -} diff --git a/backend/src/Squidex.Infrastructure/Queries/Json/ValueConverter.cs b/backend/src/Squidex.Infrastructure/Queries/Json/ValueConverter.cs index aa1245bf1..c1146862c 100644 --- a/backend/src/Squidex.Infrastructure/Queries/Json/ValueConverter.cs +++ b/backend/src/Squidex.Infrastructure/Queries/Json/ValueConverter.cs @@ -288,7 +288,7 @@ namespace Squidex.Infrastructure.Queries.Json switch (value) { - case JsonNull _: + case JsonNull: return true; case JsonNumber jsonNumber: result = jsonNumber.Value; diff --git a/backend/src/Squidex.Infrastructure/Translations/MissingKeys.cs b/backend/src/Squidex.Infrastructure/Translations/MissingKeys.cs index 41d93657f..0b2531356 100644 --- a/backend/src/Squidex.Infrastructure/Translations/MissingKeys.cs +++ b/backend/src/Squidex.Infrastructure/Translations/MissingKeys.cs @@ -36,7 +36,7 @@ namespace Squidex.Infrastructure.Translations { if (!missingTranslations.Add(key)) { - File.AppendAllLines(MissingFileName, new string[] { key }); + File.AppendAllLines(MissingFileName, new[] { key }); } } } diff --git a/backend/src/Squidex.Infrastructure/Validation/IValidatable.cs b/backend/src/Squidex.Infrastructure/Validation/IValidatable.cs deleted file mode 100644 index 61d251605..000000000 --- a/backend/src/Squidex.Infrastructure/Validation/IValidatable.cs +++ /dev/null @@ -1,16 +0,0 @@ -// ========================================================================== -// Squidex Headless CMS -// ========================================================================== -// Copyright (c) Squidex UG (haftungsbeschränkt) -// All rights reserved. Licensed under the MIT license. -// ========================================================================== - -using System.Collections.Generic; - -namespace Squidex.Infrastructure.Validation -{ - public interface IValidatable - { - void Validate(IList errors); - } -} diff --git a/backend/src/Squidex.Web/ApiExceptionConverter.cs b/backend/src/Squidex.Web/ApiExceptionConverter.cs index 6d23bd584..7af040d83 100644 --- a/backend/src/Squidex.Web/ApiExceptionConverter.cs +++ b/backend/src/Squidex.Web/ApiExceptionConverter.cs @@ -85,25 +85,25 @@ namespace Squidex.Web case ValidationException ex: return (CreateError(400, T.Get("common.httpValidationError"), ToErrors(ex.Errors).ToArray()), true); - case DomainObjectNotFoundException _: + case DomainObjectNotFoundException: return (CreateError(404), true); - case DomainObjectVersionException _: + case DomainObjectVersionException: return (CreateError(412, exception.Message), true); - case DomainObjectConflictException _: + case DomainObjectConflictException: return (CreateError(409, exception.Message), true); - case DomainForbiddenException _: + case DomainForbiddenException: return (CreateError(403, exception.Message), true); - case DomainException _: + case DomainException: return (CreateError(400, exception.Message), true); - case SecurityException _: + case SecurityException: return (CreateError(403), false); - case DecoderFallbackException _: + case DecoderFallbackException: return (CreateError(400, exception.Message), true); case BadHttpRequestException ex: diff --git a/backend/src/Squidex.Web/ApiExceptionFilterAttribute.cs b/backend/src/Squidex.Web/ApiExceptionFilterAttribute.cs index 28a71eb2e..b448aca75 100644 --- a/backend/src/Squidex.Web/ApiExceptionFilterAttribute.cs +++ b/backend/src/Squidex.Web/ApiExceptionFilterAttribute.cs @@ -19,7 +19,7 @@ namespace Squidex.Web { var resultContext = await next(); - if (resultContext.Result is ObjectResult objectResult && objectResult.Value is ProblemDetails problem) + if (resultContext.Result is ObjectResult { Value: ProblemDetails problem }) { var (error, _) = problem.ToErrorDto(context.HttpContext); diff --git a/backend/src/Squidex.Web/Pipeline/DeferredActionFilter.cs b/backend/src/Squidex.Web/Pipeline/DeferredActionFilter.cs index e57a62981..5a42ed364 100644 --- a/backend/src/Squidex.Web/Pipeline/DeferredActionFilter.cs +++ b/backend/src/Squidex.Web/Pipeline/DeferredActionFilter.cs @@ -17,7 +17,7 @@ namespace Squidex.Web.Pipeline { var resultContext = await next(); - if (resultContext.Result is ObjectResult objectResult && objectResult.Value is Deferred deferred) + if (resultContext.Result is ObjectResult { Value: Deferred deferred } objectResult) { objectResult.Value = await deferred.Value; } diff --git a/backend/src/Squidex.Web/Services/UrlGenerator.cs b/backend/src/Squidex.Web/Services/UrlGenerator.cs index e8d7ace91..effd46d5f 100644 --- a/backend/src/Squidex.Web/Services/UrlGenerator.cs +++ b/backend/src/Squidex.Web/Services/UrlGenerator.cs @@ -42,11 +42,6 @@ namespace Squidex.Web.Services return urlGenerator.BuildUrl($"api/assets/{appId.Name}/{idOrSlug}?width=100&mode=Max"); } - public string AppSettingsUI(NamedId appId) - { - return urlGenerator.BuildUrl($"app/{appId.Name}/settings", false); - } - public string AssetContentBase() { return urlGenerator.BuildUrl("api/assets/"); @@ -77,11 +72,6 @@ namespace Squidex.Web.Services return urlGenerator.BuildUrl($"app/{appId.Name}/assets", false) + query != null ? $"?query={query}" : string.Empty; } - public string AssetsUI(NamedId appId, string? query = null) - { - return urlGenerator.BuildUrl($"app/{appId.Name}/assets?query={query}", false); - } - public string BackupsUI(NamedId appId) { return urlGenerator.BuildUrl($"app/{appId.Name}/settings/backups", false); @@ -92,11 +82,6 @@ namespace Squidex.Web.Services return urlGenerator.BuildUrl($"app/{appId.Name}/settings/clients", false); } - public string ContentsUI(NamedId appId) - { - return urlGenerator.BuildUrl($"app/{appId.Name}/content", false); - } - public string ContentsUI(NamedId appId, NamedId schemaId) { return urlGenerator.BuildUrl($"app/{appId.Name}/content/{schemaId.Name}", false); diff --git a/backend/src/Squidex/Areas/Api/Controllers/Assets/AssetContentController.cs b/backend/src/Squidex/Areas/Api/Controllers/Assets/AssetContentController.cs index b89a34082..947049964 100644 --- a/backend/src/Squidex/Areas/Api/Controllers/Assets/AssetContentController.cs +++ b/backend/src/Squidex/Areas/Api/Controllers/Assets/AssetContentController.cs @@ -118,7 +118,7 @@ namespace Squidex.Areas.Api.Controllers.Assets if (asset.IsProtected && !Resources.CanReadAssets) { - Response.Headers[HeaderNames.CacheControl] = $"public,max-age=0"; + Response.Headers[HeaderNames.CacheControl] = "public,max-age=0"; return StatusCode(403); } diff --git a/backend/src/Squidex/Areas/Api/Startup.cs b/backend/src/Squidex/Areas/Api/Startup.cs index 9c2cb90ee..35829c275 100644 --- a/backend/src/Squidex/Areas/Api/Startup.cs +++ b/backend/src/Squidex/Areas/Api/Startup.cs @@ -9,6 +9,7 @@ using Microsoft.AspNetCore.Builder; using Squidex.Areas.Api.Config; using Squidex.Areas.Api.Config.OpenApi; using Squidex.Web; +using Squidex.Web.Pipeline; namespace Squidex.Areas.Api { @@ -20,6 +21,8 @@ namespace Squidex.Areas.Api { appApi.UseMiddleware(); + appApi.UseAccessTokenQueryString(); + appApi.UseRouting(); appApi.UseAuthentication(); diff --git a/backend/src/Squidex/Areas/IdentityServer/Controllers/Account/AccountController.cs b/backend/src/Squidex/Areas/IdentityServer/Controllers/Account/AccountController.cs index 6d5f1e3f1..c3ac03d5b 100644 --- a/backend/src/Squidex/Areas/IdentityServer/Controllers/Account/AccountController.cs +++ b/backend/src/Squidex/Areas/IdentityServer/Controllers/Account/AccountController.cs @@ -18,11 +18,9 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; using Squidex.Config; using Squidex.Domain.Users; -using Squidex.Hosting; using Squidex.Infrastructure; using Squidex.Infrastructure.Security; using Squidex.Infrastructure.Translations; -using Squidex.Log; using Squidex.Shared.Identity; using Squidex.Shared.Users; using Squidex.Web; @@ -32,23 +30,17 @@ namespace Squidex.Areas.IdentityServer.Controllers.Account public sealed class AccountController : IdentityServerController { private readonly IUserService userService; - private readonly IUrlGenerator urlGenerator; private readonly MyIdentityOptions identityOptions; - private readonly ISemanticLog log; private readonly IIdentityServerInteractionService interactions; public AccountController( IUserService userService, - IUrlGenerator urlGenerator, IOptions identityOptions, - ISemanticLog log, IIdentityServerInteractionService interactions) { this.identityOptions = identityOptions.Value; this.interactions = interactions; - this.urlGenerator = urlGenerator; this.userService = userService; - this.log = log; } [HttpGet] diff --git a/backend/src/Squidex/Areas/IdentityServer/Controllers/Profile/ProfileController.cs b/backend/src/Squidex/Areas/IdentityServer/Controllers/Profile/ProfileController.cs index 030375c2b..a76111883 100644 --- a/backend/src/Squidex/Areas/IdentityServer/Controllers/Profile/ProfileController.cs +++ b/backend/src/Squidex/Areas/IdentityServer/Controllers/Profile/ProfileController.cs @@ -76,7 +76,7 @@ namespace Squidex.Areas.IdentityServer.Controllers.Profile [Route("/account/profile/login-add-callback/")] public Task AddLoginCallback() { - return MakeChangeAsync(u => AddLoginAsync(u), + return MakeChangeAsync(u => AddLoginAsync(u), T.Get("users.profile.addLoginDone"), None.Value); } @@ -132,7 +132,7 @@ namespace Squidex.Areas.IdentityServer.Controllers.Profile [Route("/account/profile/upload-picture/")] public Task UploadPicture(List file) { - return MakeChangeAsync(user => UpdatePictureAsync(file, user), + return MakeChangeAsync(user => UpdatePictureAsync(file, user), T.Get("users.profile.uploadPictureDone"), None.Value); } diff --git a/backend/src/Squidex/Areas/IdentityServer/Controllers/Setup/SetupController.cs b/backend/src/Squidex/Areas/IdentityServer/Controllers/Setup/SetupController.cs index 0858b24a0..e35f29733 100644 --- a/backend/src/Squidex/Areas/IdentityServer/Controllers/Setup/SetupController.cs +++ b/backend/src/Squidex/Areas/IdentityServer/Controllers/Setup/SetupController.cs @@ -111,7 +111,7 @@ namespace Squidex.Areas.IdentityServer.Controllers.Setup IsAssetStoreFile = assetStore is FolderAssetStore, IsAssetStoreFtp = assetStore is FTPAssetStore, HasExternalLogin = externalProviders.Any(), - HasPasswordAuth = identityOptions.AllowPasswordAuth, + HasPasswordAuth = identityOptions.AllowPasswordAuth }; if (model != null) diff --git a/backend/src/Squidex/Config/Domain/SerializationInitializer.cs b/backend/src/Squidex/Config/Domain/SerializationInitializer.cs index 282bd7b7f..2763c31fa 100644 --- a/backend/src/Squidex/Config/Domain/SerializationInitializer.cs +++ b/backend/src/Squidex/Config/Domain/SerializationInitializer.cs @@ -12,7 +12,6 @@ using Newtonsoft.Json; using Squidex.Areas.Api.Controllers.Rules.Models; using Squidex.Domain.Apps.Core.HandleRules; using Squidex.Hosting; -using Squidex.Infrastructure; using Squidex.Infrastructure.Json; using Squidex.Infrastructure.MongoDb; using Squidex.Infrastructure.Orleans; diff --git a/backend/tests/Squidex.Domain.Apps.Core.Tests/Model/Schemas/FieldCompareTests.cs b/backend/tests/Squidex.Domain.Apps.Core.Tests/Model/Schemas/FieldCompareTests.cs index 05d4b95fb..ae087f634 100644 --- a/backend/tests/Squidex.Domain.Apps.Core.Tests/Model/Schemas/FieldCompareTests.cs +++ b/backend/tests/Squidex.Domain.Apps.Core.Tests/Model/Schemas/FieldCompareTests.cs @@ -41,7 +41,7 @@ namespace Squidex.Domain.Apps.Core.Model.Schemas { DefaultValues = new LocalizedValue { - ["iv"] = new string[] { "A", "B", "C" } + ["iv"] = new[] { "A", "B", "C" } } }; @@ -49,7 +49,7 @@ namespace Squidex.Domain.Apps.Core.Model.Schemas { DefaultValues = new LocalizedValue { - ["iv"] = new string[] { "A", "B", "C" } + ["iv"] = new[] { "A", "B", "C" } } }; diff --git a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Assets/AssetUsageTrackerTests.cs b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Assets/AssetUsageTrackerTests.cs index 241d0e1e6..28a64acf1 100644 --- a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Assets/AssetUsageTrackerTests.cs +++ b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Assets/AssetUsageTrackerTests.cs @@ -81,17 +81,17 @@ namespace Squidex.Domain.Apps.Entities.Assets (dateFrom.AddDays(0), new Counters { ["TotalSize"] = 128, - ["TotalAssets"] = 2, + ["TotalAssets"] = 2 }), (dateFrom.AddDays(1), new Counters { ["TotalSize"] = 256, - ["TotalAssets"] = 3, + ["TotalAssets"] = 3 }), (dateFrom.AddDays(2), new Counters { ["TotalSize"] = 512, - ["TotalAssets"] = 4, + ["TotalAssets"] = 4 }) } }); @@ -102,7 +102,7 @@ namespace Squidex.Domain.Apps.Entities.Assets { new AssetStats(dateFrom.AddDays(0), 2, 128), new AssetStats(dateFrom.AddDays(1), 3, 256), - new AssetStats(dateFrom.AddDays(2), 4, 512), + new AssetStats(dateFrom.AddDays(2), 4, 512) }); } diff --git a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Assets/Queries/AssetEnricherTests.cs b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Assets/Queries/AssetEnricherTests.cs index 1496a6303..dd0162b0d 100644 --- a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Assets/Queries/AssetEnricherTests.cs +++ b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Assets/Queries/AssetEnricherTests.cs @@ -10,7 +10,6 @@ using System.Threading.Tasks; using FakeItEasy; using Squidex.Domain.Apps.Core.Tags; using Squidex.Domain.Apps.Core.TestHelpers; -using Squidex.Domain.Apps.Entities.TestHelpers; using Squidex.Infrastructure; using Squidex.Infrastructure.Caching; using Xunit; diff --git a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Backup/UserMappingTests.cs b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Backup/UserMappingTests.cs index 48dd2b747..0d335bda0 100644 --- a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Backup/UserMappingTests.cs +++ b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Backup/UserMappingTests.cs @@ -10,7 +10,6 @@ using System.Linq; using System.Threading.Tasks; using FakeItEasy; using Squidex.Domain.Apps.Core.TestHelpers; -using Squidex.Domain.Apps.Entities.TestHelpers; using Squidex.Infrastructure; using Squidex.Shared.Users; using Xunit; diff --git a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/BulkUpdateCommandMiddlewareTests.cs b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/BulkUpdateCommandMiddlewareTests.cs index 3c865b065..736246626 100644 --- a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/BulkUpdateCommandMiddlewareTests.cs +++ b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/BulkUpdateCommandMiddlewareTests.cs @@ -62,7 +62,7 @@ namespace Squidex.Domain.Apps.Entities.Contents { SetupContext(Permissions.AppContentsUpdateOwn); - var (_, _, query) = CreateTestData(true); + CreateTestData(true); var command = BulkCommand(BulkUpdateType.ChangeStatus); @@ -79,7 +79,7 @@ namespace Squidex.Domain.Apps.Entities.Contents { var requestContext = SetupContext(Permissions.AppContentsUpdateOwn); - var (id, data, query) = CreateTestData(true); + var (id, _, query) = CreateTestData(true); A.CallTo(() => contentQuery.QueryAsync(requestContext, A._, A.That.Matches(x => x.JsonQuery == query))) .Returns(ResultList.CreateFrom(2, CreateContent(id), CreateContent(id))); @@ -205,7 +205,7 @@ namespace Squidex.Domain.Apps.Entities.Contents [Fact] public async Task Should_upsert_content_with_custom_id() { - var requestContext = SetupContext(Permissions.AppContentsUpsert); + SetupContext(Permissions.AppContentsUpsert); var (id, data, _) = CreateTestData(true); @@ -471,7 +471,7 @@ namespace Squidex.Domain.Apps.Entities.Contents Id = id, Data = data!, DueTime = dueTime, - Query = query, + Query = query } }, SchemaId = schemaId diff --git a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/ContentChangedTriggerHandlerTests.cs b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/ContentChangedTriggerHandlerTests.cs index 75e90730f..c772187cc 100644 --- a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/ContentChangedTriggerHandlerTests.cs +++ b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/ContentChangedTriggerHandlerTests.cs @@ -19,7 +19,6 @@ using Squidex.Domain.Apps.Core.Rules.Triggers; using Squidex.Domain.Apps.Core.Scripting; using Squidex.Domain.Apps.Core.TestHelpers; using Squidex.Domain.Apps.Entities.Contents.Repositories; -using Squidex.Domain.Apps.Entities.TestHelpers; using Squidex.Domain.Apps.Events; using Squidex.Domain.Apps.Events.Assets; using Squidex.Domain.Apps.Events.Contents; @@ -32,7 +31,6 @@ namespace Squidex.Domain.Apps.Entities.Contents public class ContentChangedTriggerHandlerTests { private readonly IScriptEngine scriptEngine = A.Fake(); - private readonly ILocalCache localCache = new AsyncLocalCache(); private readonly IContentLoader contentLoader = A.Fake(); private readonly IContentRepository contentRepository = A.Fake(); private readonly NamedId appId = NamedId.Of(DomainId.NewGuid(), "my-app"); diff --git a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/DomainObject/Guards/GuardContentTests.cs b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/DomainObject/Guards/GuardContentTests.cs index dca7ecf91..2a06a9720 100644 --- a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/DomainObject/Guards/GuardContentTests.cs +++ b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/DomainObject/Guards/GuardContentTests.cs @@ -267,7 +267,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.DomainObject.Guards [Fact] public void CanDeleteDraft_should_throw_exception_if_no_draft_found() { - var schema = CreateSchema(false); + CreateSchema(false); var content = CreateContent(Status.Published); var command = CreateCommand(new DeleteContentDraft()); diff --git a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLMutationTests.cs b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLMutationTests.cs index 875fc4a86..e2a51a216 100644 --- a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLMutationTests.cs +++ b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLMutationTests.cs @@ -53,7 +53,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL { data = new { - createMySchemaContent = (object?)null, + createMySchemaContent = (object?)null }, errors = new[] { @@ -194,7 +194,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL { data = new { - updateMySchemaContent = (object?)null, + updateMySchemaContent = (object?)null }, errors = new[] { @@ -299,7 +299,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL { data = new { - upsertMySchemaContent = (object?)null, + upsertMySchemaContent = (object?)null }, errors = new[] { @@ -406,7 +406,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL { data = new { - patchMySchemaContent = (object?)null, + patchMySchemaContent = (object?)null }, errors = new[] { @@ -511,7 +511,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL { data = new { - changeMySchemaContent = (object?)null, + changeMySchemaContent = (object?)null }, errors = new[] { diff --git a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/Queries/ContentQueryServiceTests.cs b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/Queries/ContentQueryServiceTests.cs index 417ab0443..ae5f06be8 100644 --- a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/Queries/ContentQueryServiceTests.cs +++ b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/Queries/ContentQueryServiceTests.cs @@ -224,7 +224,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.Queries var ctx = CreateContext(true, true, Permissions.AppContentsReadOwn); - var result = await sut.QueryAsync(ctx, schemaId.Name, Q.Empty); + await sut.QueryAsync(ctx, schemaId.Name, Q.Empty); A.CallTo(() => contentRepository.QueryAsync(ctx.App, schema, A.That.Matches(x => x.CreatedBy!.Equals(ctx.User.Token())), SearchScope.All)) .MustHaveHappened(); @@ -236,7 +236,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.Queries var ctx = CreateContext(true, true, Permissions.AppContentsRead); - var result = await sut.QueryAsync(ctx, schemaId.Name, Q.Empty); + await sut.QueryAsync(ctx, schemaId.Name, Q.Empty); A.CallTo(() => contentRepository.QueryAsync(ctx.App, schema, A.That.Matches(x => x.CreatedBy == null), SearchScope.All)) .MustHaveHappened(); diff --git a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/Text/CachingTextIndexerStateTests.cs b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/Text/CachingTextIndexerStateTests.cs index 5c9857b28..159570e7e 100644 --- a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/Text/CachingTextIndexerStateTests.cs +++ b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/Text/CachingTextIndexerStateTests.cs @@ -10,7 +10,6 @@ using System.Threading.Tasks; using FakeItEasy; using Squidex.Domain.Apps.Core.TestHelpers; using Squidex.Domain.Apps.Entities.Contents.Text.State; -using Squidex.Domain.Apps.Entities.TestHelpers; using Squidex.Infrastructure; using Xunit; diff --git a/backend/tests/Squidex.Domain.Users.Tests/DefaultUserServiceTests.cs b/backend/tests/Squidex.Domain.Users.Tests/DefaultUserServiceTests.cs index 8e662b82d..e80c6fabe 100644 --- a/backend/tests/Squidex.Domain.Users.Tests/DefaultUserServiceTests.cs +++ b/backend/tests/Squidex.Domain.Users.Tests/DefaultUserServiceTests.cs @@ -117,7 +117,7 @@ namespace Squidex.Domain.Users var provider = "my-provider"; var providerKey = "key"; - var identity = CreateIdentity(found: false); + CreateIdentity(found: false); A.CallTo(() => userManager.FindByLoginAsync(provider, providerKey)) .Returns(Task.FromResult(null!)); @@ -202,7 +202,7 @@ namespace Squidex.Domain.Users var values = new UserValues { - Consent = true, + Consent = true }; SetupCreation(identity, 1); @@ -220,7 +220,7 @@ namespace Squidex.Domain.Users var values = new UserValues { - Consent = true, + Consent = true }; SetupCreation(identity, 0); @@ -238,7 +238,7 @@ namespace Squidex.Domain.Users var values = new UserValues { - Consent = true, + Consent = true }; SetupCreation(identity, 0); @@ -256,7 +256,7 @@ namespace Squidex.Domain.Users var values = new UserValues { - Consent = true, + Consent = true }; SetupCreation(identity, 1); diff --git a/backend/tests/Squidex.Infrastructure.Tests/Orleans/LockGrainTests.cs b/backend/tests/Squidex.Infrastructure.Tests/Orleans/LockGrainTests.cs deleted file mode 100644 index 2b101774c..000000000 --- a/backend/tests/Squidex.Infrastructure.Tests/Orleans/LockGrainTests.cs +++ /dev/null @@ -1,50 +0,0 @@ -// ========================================================================== -// Squidex Headless CMS -// ========================================================================== -// Copyright (c) Squidex UG (haftungsbeschraenkt) -// All rights reserved. Licensed under the MIT license. -// ========================================================================== - -using System.Threading.Tasks; -using Xunit; - -namespace Squidex.Infrastructure.Orleans -{ - public class LockGrainTests - { - private readonly LockGrain sut = new LockGrain(); - - [Fact] - public async Task Should_not_acquire_lock_when_locked() - { - var releaseLock1 = await sut.AcquireLockAsync("Key1"); - var releaseLock2 = await sut.AcquireLockAsync("Key1"); - - Assert.NotNull(releaseLock1); - Assert.Null(releaseLock2); - } - - [Fact] - public async Task Should_acquire_lock_with_other_key() - { - var releaseLock1 = await sut.AcquireLockAsync("Key1"); - var releaseLock2 = await sut.AcquireLockAsync("Key2"); - - Assert.NotNull(releaseLock1); - Assert.NotNull(releaseLock2); - } - - [Fact] - public async Task Should_acquire_lock_after_released() - { - var releaseLock1 = await sut.AcquireLockAsync("Key1"); - - await sut.ReleaseLockAsync(releaseLock1!); - - var releaseLock2 = await sut.AcquireLockAsync("Key1"); - - Assert.NotNull(releaseLock1); - Assert.NotNull(releaseLock2); - } - } -} diff --git a/backend/tests/Squidex.Infrastructure.Tests/Queries/QueryFromJsonTests.cs b/backend/tests/Squidex.Infrastructure.Tests/Queries/QueryFromJsonTests.cs index a294593ea..b19f47287 100644 --- a/backend/tests/Squidex.Infrastructure.Tests/Queries/QueryFromJsonTests.cs +++ b/backend/tests/Squidex.Infrastructure.Tests/Queries/QueryFromJsonTests.cs @@ -95,7 +95,7 @@ namespace Squidex.Infrastructure.Queries Reference = new JsonSchema { Format = GeoJson.Format - }, + } }; Schema.Properties["stringArray"] = new JsonSchemaProperty diff --git a/backend/tests/Squidex.Web.Tests/Pipeline/AppResolverTests.cs b/backend/tests/Squidex.Web.Tests/Pipeline/AppResolverTests.cs index 991a90d6b..90ffe8830 100644 --- a/backend/tests/Squidex.Web.Tests/Pipeline/AppResolverTests.cs +++ b/backend/tests/Squidex.Web.Tests/Pipeline/AppResolverTests.cs @@ -78,7 +78,7 @@ namespace Squidex.Web.Pipeline [Fact] public async Task Should_return_401_if_user_is_anonymous() { - var user = SetupUser(null); + SetupUser(null); var app = CreateApp(appName);