diff --git a/extensions/Squidex.Extensions/Actions/ClientPool.cs b/extensions/Squidex.Extensions/Actions/ClientPool.cs index 74208afd3..c63b7c799 100644 --- a/extensions/Squidex.Extensions/Actions/ClientPool.cs +++ b/extensions/Squidex.Extensions/Actions/ClientPool.cs @@ -16,7 +16,7 @@ namespace Squidex.Extensions.Actions { internal sealed class ClientPool { - private static readonly TimeSpan TTL = TimeSpan.FromMinutes(30); + private static readonly TimeSpan TimeToLive = TimeSpan.FromMinutes(30); private readonly MemoryCache memoryCache = new MemoryCache(Options.Create(new MemoryCacheOptions())); private readonly Func> factory; @@ -41,7 +41,7 @@ namespace Squidex.Extensions.Actions { client = await factory(key); - memoryCache.Set(key, client, TTL); + memoryCache.Set(key, client, TimeToLive); } return client; diff --git a/extensions/Squidex.Extensions/Actions/Email/EmailActionHandler.cs b/extensions/Squidex.Extensions/Actions/Email/EmailActionHandler.cs index 4545c7053..5c9a84a47 100644 --- a/extensions/Squidex.Extensions/Actions/Email/EmailActionHandler.cs +++ b/extensions/Squidex.Extensions/Actions/Email/EmailActionHandler.cs @@ -53,8 +53,6 @@ namespace Squidex.Extensions.Actions.Email message.Subject = job.MessageSubject; message.Body = job.MessageBody; - var sendTask = client.SendMailAsync(message); - using (ct.Register(client.SendAsyncCancel)) { await client.SendMailAsync(message); diff --git a/src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ReferencesExtractor.cs b/src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ReferencesExtractor.cs index d92b70b86..ed00417a0 100644 --- a/src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ReferencesExtractor.cs +++ b/src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ReferencesExtractor.cs @@ -33,7 +33,7 @@ namespace Squidex.Domain.Apps.Core.ExtractReferenceIds if (value is JsonArray array) { - foreach (JsonObject item in array) + foreach (var item in array.OfType()) { foreach (var nestedField in field.Fields) { diff --git a/src/Squidex.Domain.Apps.Entities/AppProvider.cs b/src/Squidex.Domain.Apps.Entities/AppProvider.cs index 06f964cb4..a227d68bf 100644 --- a/src/Squidex.Domain.Apps.Entities/AppProvider.cs +++ b/src/Squidex.Domain.Apps.Entities/AppProvider.cs @@ -94,7 +94,7 @@ namespace Squidex.Domain.Apps.Entities { return localCache.GetOrCreateAsync($"GetSchemaAsync({appId}, {name})", async () => { - using (Profiler.TraceMethod("GetSchemaAsyncByName")) + using (Profiler.TraceMethod()) { var schemaId = await GetSchemaIdAsync(appId, name); @@ -112,7 +112,7 @@ namespace Squidex.Domain.Apps.Entities { return localCache.GetOrCreateAsync($"GetSchemaAsync({appId}, {id}, {allowDeleted})", async () => { - using (Profiler.TraceMethod("GetSchemaAsyncById")) + using (Profiler.TraceMethod()) { var schema = await grainFactory.GetGrain(id).GetStateAsync(); diff --git a/src/Squidex.Domain.Apps.Entities/Apps/AppGrain.cs b/src/Squidex.Domain.Apps.Entities/Apps/AppGrain.cs index 6a5e5ba2a..67cbc7183 100644 --- a/src/Squidex.Domain.Apps.Entities/Apps/AppGrain.cs +++ b/src/Squidex.Domain.Apps.Entities/Apps/AppGrain.cs @@ -268,7 +268,7 @@ namespace Squidex.Domain.Apps.Entities.Apps public void AssignContributor(AssignContributor command, bool isNew) { - RaiseEvent(SimpleMapper.Map(command, new AppContributorAssigned { IsNew = isNew })); + RaiseEvent(SimpleMapper.Map(command, new AppContributorAssigned { IsAdded = isNew })); } public void RemoveContributor(RemoveContributor command) diff --git a/src/Squidex.Domain.Apps.Entities/Apps/Invitation/InvitationEmailEventConsumer.cs b/src/Squidex.Domain.Apps.Entities/Apps/Invitation/InvitationEmailEventConsumer.cs index 036c50eb4..58e726840 100644 --- a/src/Squidex.Domain.Apps.Entities/Apps/Invitation/InvitationEmailEventConsumer.cs +++ b/src/Squidex.Domain.Apps.Entities/Apps/Invitation/InvitationEmailEventConsumer.cs @@ -78,7 +78,7 @@ namespace Squidex.Domain.Apps.Entities.Apps.Invitation if (@event.Payload is AppContributorAssigned appContributorAssigned) { - if (!appContributorAssigned.Actor.IsSubject || !appContributorAssigned.IsNew) + if (!appContributorAssigned.Actor.IsSubject || !appContributorAssigned.IsAdded) { return; } diff --git a/src/Squidex.Domain.Apps.Entities/Assets/AssetCommandMiddleware.cs b/src/Squidex.Domain.Apps.Entities/Assets/AssetCommandMiddleware.cs index 5b605ac8b..c1b217806 100644 --- a/src/Squidex.Domain.Apps.Entities/Assets/AssetCommandMiddleware.cs +++ b/src/Squidex.Domain.Apps.Entities/Assets/AssetCommandMiddleware.cs @@ -63,7 +63,7 @@ namespace Squidex.Domain.Apps.Entities.Assets await assetStore.UploadAsync(context.ContextId.ToString(), createAsset.File.OpenRead()); try { - var result = await ExecuteCommandAsync(createAsset) as AssetSavedResult; + var result = (AssetSavedResult)await ExecuteCommandAsync(createAsset); context.Complete(new AssetCreatedResult(createAsset.AssetId, originalTags, result.Version)); diff --git a/src/Squidex.Domain.Apps.Entities/Rules/UsageTracking/UsageTrackerGrain.cs b/src/Squidex.Domain.Apps.Entities/Rules/UsageTracking/UsageTrackerGrain.cs index 326e6d3fb..65a6e172e 100644 --- a/src/Squidex.Domain.Apps.Entities/Rules/UsageTracking/UsageTrackerGrain.cs +++ b/src/Squidex.Domain.Apps.Entities/Rules/UsageTracking/UsageTrackerGrain.cs @@ -79,7 +79,7 @@ namespace Squidex.Domain.Apps.Entities.Rules.UsageTracking { var target = kvp.Value; - var (from, _) = GetDateRange(today, target.NumDays); + var from = GetFromDate(today, target.NumDays); if (!target.Triggered.HasValue || target.Triggered < from) { @@ -107,15 +107,15 @@ namespace Squidex.Domain.Apps.Entities.Rules.UsageTracking await WriteStateAsync(); } - private static (DateTime, DateTime) GetDateRange(DateTime today, int? numDays) + private static DateTime GetFromDate(DateTime today, int? numDays) { if (numDays.HasValue) { - return (today.AddDays(-numDays.Value).AddDays(1), today); + return today.AddDays(-numDays.Value).AddDays(1); } else { - return (new DateTime(today.Year, today.Month, 1), today); + return new DateTime(today.Year, today.Month, 1); } } diff --git a/src/Squidex.Domain.Apps.Events/Apps/AppContributorAssigned.cs b/src/Squidex.Domain.Apps.Events/Apps/AppContributorAssigned.cs index 30f6bb480..25096774c 100644 --- a/src/Squidex.Domain.Apps.Events/Apps/AppContributorAssigned.cs +++ b/src/Squidex.Domain.Apps.Events/Apps/AppContributorAssigned.cs @@ -18,6 +18,6 @@ namespace Squidex.Domain.Apps.Events.Apps public bool IsCreated { get; set; } - public bool IsNew { get; set; } + public bool IsAdded { get; set; } } } diff --git a/src/Squidex.Infrastructure/DependencyInjection/DependencyInjectionExtensions.cs b/src/Squidex.Infrastructure/DependencyInjection/DependencyInjectionExtensions.cs index c89078eb1..3a7ebfb76 100644 --- a/src/Squidex.Infrastructure/DependencyInjection/DependencyInjectionExtensions.cs +++ b/src/Squidex.Infrastructure/DependencyInjection/DependencyInjectionExtensions.cs @@ -69,28 +69,28 @@ namespace Microsoft.Extensions.DependencyInjection { services.AddTransient(typeof(T), factory); - return new InterfaceRegistrator((t, f) => services.AddTransient(t, f), (t, f) => services.TryAddTransient(t, f)); + return new InterfaceRegistrator((t, f) => services.AddTransient(t, f), services.TryAddTransient); } public static InterfaceRegistrator AddTransientAs(this IServiceCollection services) where T : class { services.AddTransient(); - return new InterfaceRegistrator((t, f) => services.AddTransient(t, f), (t, f) => services.TryAddTransient(t, f)); + return new InterfaceRegistrator((t, f) => services.AddTransient(t, f), services.TryAddTransient); } public static InterfaceRegistrator AddSingletonAs(this IServiceCollection services, Func factory) where T : class { services.AddSingleton(typeof(T), factory); - return new InterfaceRegistrator((t, f) => services.AddSingleton(t, f), (t, f) => services.TryAddSingleton(t, f)); + return new InterfaceRegistrator((t, f) => services.AddSingleton(t, f), services.TryAddSingleton); } public static InterfaceRegistrator AddSingletonAs(this IServiceCollection services) where T : class { services.AddSingleton(); - return new InterfaceRegistrator((t, f) => services.AddSingleton(t, f), (t, f) => services.TryAddSingleton(t, f)); + return new InterfaceRegistrator((t, f) => services.AddSingleton(t, f), services.TryAddSingleton); } } } diff --git a/src/Squidex.Infrastructure/Security/Permission.cs b/src/Squidex.Infrastructure/Security/Permission.cs index a43f380a1..0864337db 100644 --- a/src/Squidex.Infrastructure/Security/Permission.cs +++ b/src/Squidex.Infrastructure/Security/Permission.cs @@ -100,9 +100,9 @@ namespace Squidex.Infrastructure.Security return true; } - public bool StartsWith(string id) + public bool StartsWith(string test) { - return id.StartsWith(id, StringComparison.OrdinalIgnoreCase); + return id.StartsWith(test, StringComparison.OrdinalIgnoreCase); } public override bool Equals(object obj) diff --git a/src/Squidex/Pipeline/Plugins/MvcParts.cs b/src/Squidex/Pipeline/Plugins/MvcParts.cs index f44d9d619..46f8555b7 100644 --- a/src/Squidex/Pipeline/Plugins/MvcParts.cs +++ b/src/Squidex/Pipeline/Plugins/MvcParts.cs @@ -25,7 +25,7 @@ namespace Squidex.Pipeline.Plugins foreach (var reference in RelatedAssemblyAttribute.GetRelatedAssemblies(assembly, false)) { - AddParts(parts, assembly); + AddParts(parts, reference); } }); } diff --git a/src/Squidex/app-config/karma.conf.js b/src/Squidex/app-config/karma.conf.js index 5b873cd33..8b64456f4 100644 --- a/src/Squidex/app-config/karma.conf.js +++ b/src/Squidex/app-config/karma.conf.js @@ -17,7 +17,7 @@ module.exports = function (config) { ], preprocessors: { - './app-config/karma-test-shim.js': ['webpack', 'sourcemap'], + './app-config/karma-test-shim.js': ['webpack', 'sourcemap'] }, /** diff --git a/src/Squidex/app-config/karma.coverage.conf.js b/src/Squidex/app-config/karma.coverage.conf.js index abd292e43..441b998b9 100644 --- a/src/Squidex/app-config/karma.coverage.conf.js +++ b/src/Squidex/app-config/karma.coverage.conf.js @@ -17,7 +17,7 @@ module.exports = function (config) { ], preprocessors: { - './app-config/karma-test-shim.js': ['webpack', 'sourcemap'], + './app-config/karma-test-shim.js': ['webpack', 'sourcemap'] }, /** diff --git a/src/Squidex/app-config/webpack.config.js b/src/Squidex/app-config/webpack.config.js index fccfc99bc..ddf15f032 100644 --- a/src/Squidex/app-config/webpack.config.js +++ b/src/Squidex/app-config/webpack.config.js @@ -49,8 +49,7 @@ module.exports = { rules: [{ test: /\.mjs$/, type: "javascript/auto", - include: [/node_modules/], - + include: [/node_modules/] }, { test: /[\/\\]@angular[\/\\]core[\/\\].+\.js$/, parser: { system: true }, diff --git a/src/Squidex/app/features/rules/pages/rules/triggers/usage-trigger.component.html b/src/Squidex/app/features/rules/pages/rules/triggers/usage-trigger.component.html index d2637ac1f..9cac20082 100644 --- a/src/Squidex/app/features/rules/pages/rules/triggers/usage-trigger.component.html +++ b/src/Squidex/app/features/rules/pages/rules/triggers/usage-trigger.component.html @@ -1,6 +1,6 @@
- + @@ -16,7 +16,7 @@ - + The number of days to check or empty to check the current month. diff --git a/src/Squidex/app/features/schemas/pages/schema/types/assets-ui.component.html b/src/Squidex/app/features/schemas/pages/schema/types/assets-ui.component.html index 9a0e7afd1..833ec5b59 100644 --- a/src/Squidex/app/features/schemas/pages/schema/types/assets-ui.component.html +++ b/src/Squidex/app/features/schemas/pages/schema/types/assets-ui.component.html @@ -1,3 +1,3 @@
Nothing to setup -
\ No newline at end of file +
\ No newline at end of file diff --git a/src/Squidex/app/features/schemas/pages/schema/types/date-time-validation.component.html b/src/Squidex/app/features/schemas/pages/schema/types/date-time-validation.component.html index 1652843c8..0651ae035 100644 --- a/src/Squidex/app/features/schemas/pages/schema/types/date-time-validation.component.html +++ b/src/Squidex/app/features/schemas/pages/schema/types/date-time-validation.component.html @@ -39,7 +39,7 @@
- +
diff --git a/src/Squidex/app/features/schemas/pages/schema/types/geolocation-ui.component.html b/src/Squidex/app/features/schemas/pages/schema/types/geolocation-ui.component.html index 0c99136ce..4b225514c 100644 --- a/src/Squidex/app/features/schemas/pages/schema/types/geolocation-ui.component.html +++ b/src/Squidex/app/features/schemas/pages/schema/types/geolocation-ui.component.html @@ -23,4 +23,4 @@
-
\ No newline at end of file +
\ No newline at end of file diff --git a/src/Squidex/app/features/schemas/pages/schema/types/json-ui.component.html b/src/Squidex/app/features/schemas/pages/schema/types/json-ui.component.html index 4cffbcd09..aa98c07f2 100644 --- a/src/Squidex/app/features/schemas/pages/schema/types/json-ui.component.html +++ b/src/Squidex/app/features/schemas/pages/schema/types/json-ui.component.html @@ -10,4 +10,4 @@
-
\ No newline at end of file +
\ No newline at end of file diff --git a/src/Squidex/app/features/schemas/pages/schema/types/references-ui.component.html b/src/Squidex/app/features/schemas/pages/schema/types/references-ui.component.html index 9a0e7afd1..833ec5b59 100644 --- a/src/Squidex/app/features/schemas/pages/schema/types/references-ui.component.html +++ b/src/Squidex/app/features/schemas/pages/schema/types/references-ui.component.html @@ -1,3 +1,3 @@
Nothing to setup -
\ No newline at end of file +
\ No newline at end of file diff --git a/src/Squidex/app/framework/angular/forms/control-errors.component.ts b/src/Squidex/app/framework/angular/forms/control-errors.component.ts index a23a2c19c..010e2777e 100644 --- a/src/Squidex/app/framework/angular/forms/control-errors.component.ts +++ b/src/Squidex/app/framework/angular/forms/control-errors.component.ts @@ -77,7 +77,7 @@ export class ControlErrorsComponent extends StatefulComponent implements } } - let control: AbstractControl | null = null; + let control: AbstractControl | null; if (Types.isString(this.for)) { control = this.formGroupDirective.form.controls[this.for]; diff --git a/src/Squidex/app/framework/angular/forms/date-time-editor.component.ts b/src/Squidex/app/framework/angular/forms/date-time-editor.component.ts index 3508ee929..8cffe33e9 100644 --- a/src/Squidex/app/framework/angular/forms/date-time-editor.component.ts +++ b/src/Squidex/app/framework/angular/forms/date-time-editor.component.ts @@ -159,7 +159,7 @@ export class DateTimeEditorComponent extends StatefulControlComponent<{}, string } private updateValue() { - let result: string | null = null; + let result: string | null; if ((this.dateValue && !this.dateValue.isValid()) || (this.timeValue && !this.timeValue.isValid())) { result = null; diff --git a/src/Squidex/app/framework/angular/forms/tag-editor.component.ts b/src/Squidex/app/framework/angular/forms/tag-editor.component.ts index 210825dc0..4e049dc45 100644 --- a/src/Squidex/app/framework/angular/forms/tag-editor.component.ts +++ b/src/Squidex/app/framework/angular/forms/tag-editor.component.ts @@ -312,6 +312,8 @@ export class TagEditorComponent extends StatefulControlComponent i this.resetAutocompletion(); return true; } + + return false; } private resetAutocompletion() { diff --git a/src/Squidex/app/framework/angular/forms/validators.ts b/src/Squidex/app/framework/angular/forms/validators.ts index e5e85654c..a0c61f551 100644 --- a/src/Squidex/app/framework/angular/forms/validators.ts +++ b/src/Squidex/app/framework/angular/forms/validators.ts @@ -24,7 +24,7 @@ export module ValidatorsEx { return (control: AbstractControl) => { const error = inner(control); - if (error !== null && error.pattern && message) { + if (!!error && error.pattern && message) { return { patternmessage: { requiredPattern: error.pattern.requiredPattern, actualValue: error.pattern.actualValue, message } }; } diff --git a/src/Squidex/app/framework/angular/modals/tooltip.directive.ts b/src/Squidex/app/framework/angular/modals/tooltip.directive.ts index 85c4036aa..c6c5afc73 100644 --- a/src/Squidex/app/framework/angular/modals/tooltip.directive.ts +++ b/src/Squidex/app/framework/angular/modals/tooltip.directive.ts @@ -52,7 +52,7 @@ export class TooltipDirective { private unsetAttribute() { try { this.renderer.setAttribute(this.element.nativeElement, 'title', ''); - } catch { + } catch (ex) { return; } } diff --git a/src/Squidex/app/framework/utils/permission.ts b/src/Squidex/app/framework/utils/permission.ts index f199709c5..164d46cf5 100644 --- a/src/Squidex/app/framework/utils/permission.ts +++ b/src/Squidex/app/framework/utils/permission.ts @@ -96,14 +96,18 @@ export class Permission { private static intersects(lhs: { [key: string]: true }, rhs: { [key: string]: true }) { for (let key in lhs) { - if (rhs[key]) { - return true; + if (lhs.hasOwnProperty(key)) { + if (rhs[key]) { + return true; + } } } for (let key in rhs) { - if (lhs[key]) { - return true; + if (rhs.hasOwnProperty(key)) { + if (lhs[key]) { + return true; + } } } diff --git a/src/Squidex/app/shared/components/asset-dialog.component.html b/src/Squidex/app/shared/components/asset-dialog.component.html index a66b80f3e..3be944486 100644 --- a/src/Squidex/app/shared/components/asset-dialog.component.html +++ b/src/Squidex/app/shared/components/asset-dialog.component.html @@ -28,7 +28,7 @@
- + diff --git a/src/Squidex/app/shared/components/table-header.component.ts b/src/Squidex/app/shared/components/table-header.component.ts index 089d073aa..d7be9cc40 100644 --- a/src/Squidex/app/shared/components/table-header.component.ts +++ b/src/Squidex/app/shared/components/table-header.component.ts @@ -39,7 +39,7 @@ export class TableHeaderComponent { public sortingChange = new EventEmitter(); public sort() { - if (!!this.sortable) { + if (this.sortable) { if (!this.sorting || this.sorting !== 'Ascending') { this.sorting = 'Ascending'; } else { diff --git a/src/Squidex/app/shared/services/comments.service.spec.ts b/src/Squidex/app/shared/services/comments.service.spec.ts index 87689b95d..9e5b7290b 100644 --- a/src/Squidex/app/shared/services/comments.service.spec.ts +++ b/src/Squidex/app/shared/services/comments.service.spec.ts @@ -87,7 +87,7 @@ describe('CommentsService', () => { let comment: CommentDto; commentsService.postComment('my-app', 'my-comments', new UpsertCommentDto('text1')).subscribe(result => { - comment = result; + comment = result; }); const req = httpMock.expectOne('http://service/p/api/apps/my-app/comments/my-comments'); diff --git a/src/Squidex/app/shared/state/contents.forms.ts b/src/Squidex/app/shared/state/contents.forms.ts index 3ca639b78..20c07a9bf 100644 --- a/src/Squidex/app/shared/state/contents.forms.ts +++ b/src/Squidex/app/shared/state/contents.forms.ts @@ -391,7 +391,7 @@ export class EditContentForm extends Form { const fieldValue = value ? value[field.name] || {} : {}; const addControls = (key: string, language: AppLanguageDto | null) => { - const partitionValidators = FieldValidatorsFactory.createValidators(field, language !== null && language.isOptional); + const partitionValidators = FieldValidatorsFactory.createValidators(field, !!language && language.isOptional); const partitionForm = new FormArray([], partitionValidators); const partitionValue = fieldValue[key]; diff --git a/src/Squidex/app/shared/state/schemas.state.ts b/src/Squidex/app/shared/state/schemas.state.ts index 2a995b8ee..900401b2c 100644 --- a/src/Squidex/app/shared/state/schemas.state.ts +++ b/src/Squidex/app/shared/state/schemas.state.ts @@ -349,8 +349,10 @@ function buildCategories(categories: { [name: string]: boolean }, schemas: Immut categories = { ...categories }; for (let category in categories) { - if (!categories[category]) { - delete categories[category]; + if (categories.hasOwnProperty(category)) { + if (!categories[category]) { + delete categories[category]; + } } } for (let schema of schemas.values) { diff --git a/src/Squidex/wwwroot/_theme.html b/src/Squidex/wwwroot/_theme.html index 180778ecb..5a2d13827 100644 --- a/src/Squidex/wwwroot/_theme.html +++ b/src/Squidex/wwwroot/_theme.html @@ -51,7 +51,7 @@