using Hangfire.Dashboard; using JetBrains.Annotations; using System.Collections.Generic; using Volo.Abp; namespace Hangfire { public static class DashboardOptionsExtensions { public static DashboardOptions AddAuthorization( [NotNull] this DashboardOptions options, [NotNull] IDashboardAuthorizationFilter authorizationFilter) { Check.NotNull(options, nameof(options)); Check.NotNull(authorizationFilter, nameof(authorizationFilter)); List filters = new List(); filters.AddRange(options.Authorization); filters.AddIfNotContains(authorizationFilter); options.Authorization = filters; return options; } public static DashboardOptions AddAuthorizations( [NotNull] this DashboardOptions options, [NotNull] IEnumerable authorizationFilters) { Check.NotNull(options, nameof(options)); Check.NotNull(authorizationFilters, nameof(authorizationFilters)); List filters = new List(); filters.AddRange(options.Authorization); filters.AddIfNotContains(authorizationFilters); options.Authorization = filters; return options; } public static DashboardOptions UseAuthorization( [NotNull] this DashboardOptions options, [NotNull] IDashboardAuthorizationFilter authorizationFilter) { Check.NotNull(options, nameof(options)); Check.NotNull(authorizationFilter, nameof(authorizationFilter)); List filters = new List { authorizationFilter }; options.Authorization = filters; return options; } public static DashboardOptions UseAuthorizations( [NotNull] this DashboardOptions options, [NotNull] IEnumerable authorizationFilters) { Check.NotNull(options, nameof(options)); Check.NotNull(authorizationFilters, nameof(authorizationFilters)); List filters = new List(); filters.AddRange(authorizationFilters); options.Authorization = filters; return options; } } }