mirror of
https://github.com/collinbarrett/FilterLists.git
synced 2026-03-11 09:04:27 +00:00
refactor(r#): ♻🎨 reset and re-Cleanup Code
This commit is contained in:
parent
17c7e9d84f
commit
46d99268b1
46 changed files with 269 additions and 289 deletions
|
|
@ -9,7 +9,7 @@ namespace FilterLists.Archival.Api.Controllers
|
|||
public class PingController : ControllerBase
|
||||
{
|
||||
/// <summary>
|
||||
/// A sample endpoint.
|
||||
/// A sample endpoint.
|
||||
/// </summary>
|
||||
/// <returns>Pong.</returns>
|
||||
[HttpGet]
|
||||
|
|
|
|||
|
|
@ -1,42 +1,42 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||
<PublishReadyToRunShowWarnings>true</PublishReadyToRunShowWarnings>
|
||||
<RuntimeIdentifiers>alpine.3.12-x64;win10-x64</RuntimeIdentifiers>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||
<PublishReadyToRunShowWarnings>true</PublishReadyToRunShowWarnings>
|
||||
<RuntimeIdentifiers>alpine.3.12-x64;win10-x64</RuntimeIdentifiers>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<Authors>Collin M. Barrett</Authors>
|
||||
<Company>FilterLists</Company>
|
||||
<Product>FilterLists Archival</Product>
|
||||
<Description>The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.</Description>
|
||||
<Copyright>Copyright (c) 2021 Collin M. Barrett</Copyright>
|
||||
<RepositoryUrl>https://github.com/collinbarrett/FilterLists</RepositoryUrl>
|
||||
<PackageProjectUrl>https://filterlists.com</PackageProjectUrl>
|
||||
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
||||
<DockerfileContext>..\..</DockerfileContext>
|
||||
<DockerComposeProjectPath>..\..\..\docker-compose\docker-compose.dcproj</DockerComposeProjectPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<Authors>Collin M. Barrett</Authors>
|
||||
<Company>FilterLists</Company>
|
||||
<Product>FilterLists Archival</Product>
|
||||
<Description>The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.</Description>
|
||||
<Copyright>Copyright (c) 2021 Collin M. Barrett</Copyright>
|
||||
<RepositoryUrl>https://github.com/collinbarrett/FilterLists</RepositoryUrl>
|
||||
<PackageProjectUrl>https://filterlists.com</PackageProjectUrl>
|
||||
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
||||
<DockerfileContext>..\..</DockerfileContext>
|
||||
<DockerComposeProjectPath>..\..\..\docker-compose\docker-compose.dcproj</DockerComposeProjectPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<RuntimeHostConfigurationOption Include="System.Globalization.Invariant" Value="true" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<RuntimeHostConfigurationOption Include="System.Globalization.Invariant" Value="true" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.11.1" />
|
||||
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerGen" Version="6.2.3" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.11.1" />
|
||||
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerGen" Version="6.2.3" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\FilterLists.Archival.Application\FilterLists.Archival.Application.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\FilterLists.Archival.Application\FilterLists.Archival.Application.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<TrimmerRootAssembly Include="mscorlib" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<TrimmerRootAssembly Include="mscorlib" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
@ -17,10 +17,11 @@ public static void AddSwaggerGen(this IServiceCollection services)
|
|||
o.SwaggerDoc("v1", new OpenApiInfo
|
||||
{
|
||||
Title = "FilterLists Archival API",
|
||||
Description = "An ASP.NET Core API archiving and serving copies of FilterLists for mirrors and analysis.",
|
||||
Description =
|
||||
"An ASP.NET Core API archiving and serving copies of FilterLists for mirrors and analysis.",
|
||||
Version = "v1",
|
||||
//TermsOfService = "",
|
||||
Contact = new OpenApiContact {Name = "FilterLists", Url = new Uri("https://filterlists.com")},
|
||||
Contact = new OpenApiContact { Name = "FilterLists", Url = new Uri("https://filterlists.com") },
|
||||
License = new OpenApiLicense
|
||||
{
|
||||
Name = "MIT License",
|
||||
|
|
@ -42,9 +43,9 @@ public static void UseSwagger(this IApplicationBuilder app)
|
|||
o.PreSerializeFilters.Add((swaggerDoc, httpReq) => swaggerDoc.Servers = new List<OpenApiServer>
|
||||
{
|
||||
#if DEBUG
|
||||
new OpenApiServer {Url = $"{httpReq.Scheme}://{httpReq.Host.Value}:8080/api/archival"}
|
||||
new() { Url = $"{httpReq.Scheme}://{httpReq.Host.Value}:8080/api/archival" }
|
||||
#else
|
||||
new OpenApiServer {Url = $"https://{httpReq.Host.Value}/api/archival"}
|
||||
new() { Url = $"https://{httpReq.Host.Value}/api/archival" }
|
||||
#endif
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -42,7 +42,8 @@ public async Task<Unit> Handle(Command request, CancellationToken cancellationTo
|
|||
spacing = TimeSpan.FromSeconds((double)86400 / lists.Count);
|
||||
#endif
|
||||
|
||||
_logger.LogInformation("Enqueuing archival of {ArchiveCount} lists spaced {Spacing} seconds apart.", archiveCount, spacing.Seconds);
|
||||
_logger.LogInformation("Enqueuing archival of {ArchiveCount} lists spaced {Spacing} seconds apart.",
|
||||
archiveCount, spacing.Seconds);
|
||||
|
||||
for (var i = 0; i < archiveCount; i++)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ private static void ScheduleArchival()
|
|||
JobStorage.Current?.GetMonitoringApi()?.PurgeJobs();
|
||||
new EnqueueArchiveAllLists.Command().EnqueueBackgroundJob();
|
||||
#else
|
||||
new EnqueueArchiveAllLists.Command().AddOrUpdateRecurringJob(Hangfire.Cron.Daily);
|
||||
new EnqueueArchiveAllLists.Command().AddOrUpdateRecurringJob(Cron.Daily);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,36 +10,36 @@ public sealed class ListFileExtension : ValueObject
|
|||
private static readonly IDictionary<string, (bool IsPlainText, bool IsMeaningfulToConsumer)> Info =
|
||||
new Dictionary<string, (bool, bool)>
|
||||
{
|
||||
{string.Empty, (true, false)},
|
||||
{".txt", (true, false)},
|
||||
{".7z", (false, false)},
|
||||
{".action", (true, true)}, // Privoxy
|
||||
{".all", (true, false)},
|
||||
{".aspx", (true, false)},
|
||||
{".bat", (true, true)},
|
||||
{".blacklist", (true, false)},
|
||||
{".cidr", (true, true)},
|
||||
{".conf", (true, true)}, // dnsmasq / Unbound / BIND
|
||||
{".csv", (true, true)},
|
||||
{".dat", (true, true)}, // Halite for Windows
|
||||
{".deny", (true, true)},
|
||||
{".gz", (false, false)},
|
||||
{".hosts", (true, true)},
|
||||
{".ips", (true, false)},
|
||||
{".ipset", (true, true)}, // Firehol
|
||||
{".json", (true, true)},
|
||||
{".list", (true, false)},
|
||||
{".lsrules", (true, true)}, // Little Snitch
|
||||
{".md", (true, true)},
|
||||
{".netset", (true, true)}, // Firehol
|
||||
{".p2p", (true, true)}, // Peer Guardian
|
||||
{".php", (true, false)},
|
||||
{".raw", (true, false)},
|
||||
{".rpz", (true, true)}, // Response Policy Zone
|
||||
{".tpl", (true, true)}, // Internet Explorer
|
||||
{".uBl", (true, false)},
|
||||
{".zip", (false, false)},
|
||||
{".zone", (true, false)}
|
||||
{ string.Empty, (true, false) },
|
||||
{ ".txt", (true, false) },
|
||||
{ ".7z", (false, false) },
|
||||
{ ".action", (true, true) }, // Privoxy
|
||||
{ ".all", (true, false) },
|
||||
{ ".aspx", (true, false) },
|
||||
{ ".bat", (true, true) },
|
||||
{ ".blacklist", (true, false) },
|
||||
{ ".cidr", (true, true) },
|
||||
{ ".conf", (true, true) }, // dnsmasq / Unbound / BIND
|
||||
{ ".csv", (true, true) },
|
||||
{ ".dat", (true, true) }, // Halite for Windows
|
||||
{ ".deny", (true, true) },
|
||||
{ ".gz", (false, false) },
|
||||
{ ".hosts", (true, true) },
|
||||
{ ".ips", (true, false) },
|
||||
{ ".ipset", (true, true) }, // Firehol
|
||||
{ ".json", (true, true) },
|
||||
{ ".list", (true, false) },
|
||||
{ ".lsrules", (true, true) }, // Little Snitch
|
||||
{ ".md", (true, true) },
|
||||
{ ".netset", (true, true) }, // Firehol
|
||||
{ ".p2p", (true, true) }, // Peer Guardian
|
||||
{ ".php", (true, false) },
|
||||
{ ".raw", (true, false) },
|
||||
{ ".rpz", (true, true) }, // Response Policy Zone
|
||||
{ ".tpl", (true, true) }, // Internet Explorer
|
||||
{ ".uBl", (true, false) },
|
||||
{ ".zip", (false, false) },
|
||||
{ ".zone", (true, false) }
|
||||
};
|
||||
|
||||
private ListFileExtension(string value)
|
||||
|
|
@ -60,7 +60,7 @@ public static ListFileExtension FromUri(Uri uri)
|
|||
|
||||
protected override IEnumerable<object> GetEqualityComponents()
|
||||
{
|
||||
return new[] {Value};
|
||||
return new[] { Value };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,7 +22,8 @@ internal sealed class HttpContentClient : IHttpContentClient
|
|||
public HttpContentClient(HttpClient httpClient, ILogger<HttpContentClient> logger)
|
||||
{
|
||||
_httpClient = httpClient;
|
||||
_httpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36");
|
||||
_httpClient.DefaultRequestHeaders.Add("User-Agent",
|
||||
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36");
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -75,7 +75,8 @@ public void Commit()
|
|||
{
|
||||
var fileNames = _writtenFiles.Select(f => f.Name).ToList();
|
||||
var signature = new Signature(_options.UserName, _options.UserEmail, DateTime.UtcNow);
|
||||
var message = $"feat(archives): archive {fileNames.Count} file(s){Environment.NewLine}{string.Join(Environment.NewLine, fileNames)}";
|
||||
var message =
|
||||
$"feat(archives): archive {fileNames.Count} file(s){Environment.NewLine}{string.Join(Environment.NewLine, fileNames)}";
|
||||
Commands.Stage(_repo, fileNames);
|
||||
try
|
||||
{
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ public static void AddSchedulingServices(this IServiceCollection services, IConf
|
|||
|
||||
public static void UseScheduling(this IApplicationBuilder app)
|
||||
{
|
||||
app.UseHangfireServer(new BackgroundJobServerOptions {WorkerCount = Environment.ProcessorCount});
|
||||
app.UseHangfireServer(new BackgroundJobServerOptions { WorkerCount = Environment.ProcessorCount });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ public static IGlobalConfiguration UseMediatR(this IGlobalConfiguration globalCo
|
|||
{
|
||||
/// https://codeopinion.com/background-commands-mediatr-hangfire/
|
||||
GlobalConfiguration.Configuration.UseSerializerSettings(
|
||||
new JsonSerializerSettings {TypeNameHandling = TypeNameHandling.Objects});
|
||||
new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Objects });
|
||||
return globalConfiguration;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ protected async Task<IActionResult> CacheGetOrCreateAsync<TResponse>(
|
|||
entry.AbsoluteExpirationRelativeToNow = absoluteExpirationRelativeToNow;
|
||||
return actionAsync();
|
||||
});
|
||||
return result is null ? NotFound() : (IActionResult)Ok(result);
|
||||
return result is null ? NotFound() : Ok(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ public LanguagesController(IMemoryCache cache, IMediator mediator) : base(cache)
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the languages targeted by FilterLists.
|
||||
/// Gets the languages targeted by FilterLists.
|
||||
/// </summary>
|
||||
/// <param name="cancellationToken">The cancellation token.</param>
|
||||
/// <returns>The languages targeted by FilterLists.</returns>
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ public LicensesController(IMemoryCache cache, IMediator mediator) : base(cache)
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the licenses applied to FilterLists.
|
||||
/// Gets the licenses applied to FilterLists.
|
||||
/// </summary>
|
||||
/// <param name="cancellationToken">The cancellation token.</param>
|
||||
/// <returns>The licenses applied to FilterLists.</returns>
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ public ListsController(IMemoryCache cache, IMediator mediator) : base(cache)
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the FilterLists..
|
||||
/// Gets the FilterLists..
|
||||
/// </summary>
|
||||
/// <param name="cancellationToken">The cancellation token.</param>
|
||||
/// <returns>The FilterLists.</returns>
|
||||
|
|
@ -33,7 +33,7 @@ public async Task<IActionResult> Get(CancellationToken cancellationToken)
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the details of the FilterList.
|
||||
/// Gets the details of the FilterList.
|
||||
/// </summary>
|
||||
/// <param name="id">The identifier of the FilterList.</param>
|
||||
/// <param name="cancellationToken">The cancellation token.</param>
|
||||
|
|
@ -43,7 +43,8 @@ public async Task<IActionResult> Get(CancellationToken cancellationToken)
|
|||
[ProducesResponseType(StatusCodes.Status404NotFound)]
|
||||
public async Task<IActionResult> GetDetails(int id, CancellationToken cancellationToken)
|
||||
{
|
||||
return await CacheGetOrCreateAsync(() => _mediator.Send(new GetListDetails.Query(id), cancellationToken), id);
|
||||
return await CacheGetOrCreateAsync(() => _mediator.Send(new GetListDetails.Query(id), cancellationToken),
|
||||
id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ public MaintainersController(IMemoryCache cache, IMediator mediator) : base(cach
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the maintainers of FilterLists.
|
||||
/// Gets the maintainers of FilterLists.
|
||||
/// </summary>
|
||||
/// <param name="cancellationToken">The cancellation token.</param>
|
||||
/// <returns>The maintainers of FilterLists.</returns>
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ public SoftwareController(IMemoryCache cache, IMediator mediator) : base(cache)
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the software that subscribes to FilterLists.
|
||||
/// Gets the software that subscribes to FilterLists.
|
||||
/// </summary>
|
||||
/// <param name="cancellationToken">The cancellation token.</param>
|
||||
/// <returns>The software that subscribes to FilterLists.</returns>
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ public SyntaxesController(IMemoryCache cache, IMediator mediator) : base(cache)
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the syntaxes of FilterLists.
|
||||
/// Gets the syntaxes of FilterLists.
|
||||
/// </summary>
|
||||
/// <param name="cancellationToken">The cancellation token.</param>
|
||||
/// <returns>The syntaxes of FilterLists.</returns>
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ public TagsController(IMemoryCache cache, IMediator mediator) : base(cache)
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the tags of FilterLists.
|
||||
/// Gets the tags of FilterLists.
|
||||
/// </summary>
|
||||
/// <param name="cancellationToken">The cancellation token.</param>
|
||||
/// <returns>The tags of FilterLists.</returns>
|
||||
|
|
|
|||
|
|
@ -1,43 +1,44 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||
<PublishReadyToRunShowWarnings>true</PublishReadyToRunShowWarnings>
|
||||
<RuntimeIdentifiers>linux-musl-x64;win10-x64</RuntimeIdentifiers>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||
<PublishReadyToRunShowWarnings>true</PublishReadyToRunShowWarnings>
|
||||
<RuntimeIdentifiers>linux-musl-x64;win10-x64</RuntimeIdentifiers>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<Authors>Collin M. Barrett</Authors>
|
||||
<Company>FilterLists</Company>
|
||||
<Product>FilterLists Directory</Product>
|
||||
<Description>The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.</Description>
|
||||
<Copyright>Copyright (c) 2021 Collin M. Barrett</Copyright>
|
||||
<RepositoryUrl>https://github.com/collinbarrett/FilterLists</RepositoryUrl>
|
||||
<PackageProjectUrl>https://filterlists.com</PackageProjectUrl>
|
||||
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
||||
<DockerfileContext>..\..</DockerfileContext>
|
||||
<DockerComposeProjectPath>..\..\..\docker-compose\docker-compose.dcproj</DockerComposeProjectPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<Authors>Collin M. Barrett</Authors>
|
||||
<Company>FilterLists</Company>
|
||||
<Product>FilterLists Directory</Product>
|
||||
<Description>The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.</Description>
|
||||
<Copyright>Copyright (c) 2021 Collin M. Barrett</Copyright>
|
||||
<RepositoryUrl>https://github.com/collinbarrett/FilterLists</RepositoryUrl>
|
||||
<PackageProjectUrl>https://filterlists.com</PackageProjectUrl>
|
||||
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
||||
<DockerfileContext>..\..</DockerfileContext>
|
||||
<DockerComposeProjectPath>..\..\..\docker-compose\docker-compose.dcproj</DockerComposeProjectPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<RuntimeHostConfigurationOption Include="System.Globalization.Invariant" Value="true" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<RuntimeHostConfigurationOption Include="System.Globalization.Invariant" Value="true" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.10">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.11.1" />
|
||||
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerGen" Version="6.2.3" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.10">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.11.1" />
|
||||
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerGen" Version="6.2.3" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\FilterLists.Directory.Application\FilterLists.Directory.Application.csproj" />
|
||||
<ProjectReference Include="..\FilterLists.Directory.Infrastructure.Migrations\FilterLists.Directory.Infrastructure.Migrations.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\FilterLists.Directory.Application\FilterLists.Directory.Application.csproj" />
|
||||
<ProjectReference
|
||||
Include="..\FilterLists.Directory.Infrastructure.Migrations\FilterLists.Directory.Infrastructure.Migrations.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
@ -20,7 +20,7 @@ public static void AddSwaggerGen(this IServiceCollection services)
|
|||
Description = "An ASP.NET Core API serving the core FilterList information.",
|
||||
Version = "v1",
|
||||
//TermsOfService = "",
|
||||
Contact = new OpenApiContact {Name = "FilterLists", Url = new Uri("https://filterlists.com")},
|
||||
Contact = new OpenApiContact { Name = "FilterLists", Url = new Uri("https://filterlists.com") },
|
||||
License = new OpenApiLicense
|
||||
{
|
||||
Name = "MIT License",
|
||||
|
|
@ -42,9 +42,9 @@ public static void UseSwagger(this IApplicationBuilder app)
|
|||
o.PreSerializeFilters.Add((swaggerDoc, httpReq) => swaggerDoc.Servers = new List<OpenApiServer>
|
||||
{
|
||||
#if DEBUG
|
||||
new OpenApiServer {Url = $"{httpReq.Scheme}://{httpReq.Host.Value}:8080/api/directory"}
|
||||
new() { Url = $"{httpReq.Scheme}://{httpReq.Host.Value}:8080/api/directory" }
|
||||
#else
|
||||
new OpenApiServer {Url = $"https://{httpReq.Host.Value}/api/directory"}
|
||||
new() { Url = $"https://{httpReq.Host.Value}/api/directory" }
|
||||
#endif
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
using AutoMapper;
|
||||
using FilterLists.Directory.Infrastructure;
|
||||
using FilterLists.Directory.Infrastructure;
|
||||
using MediatR;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
|
|
|
|||
|
|
@ -1,28 +1,28 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<Authors>Collin M. Barrett</Authors>
|
||||
<Company>FilterLists</Company>
|
||||
<Product>FilterLists Directory</Product>
|
||||
<Description>The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.</Description>
|
||||
<Copyright>Copyright (c) 2021 Collin M. Barrett</Copyright>
|
||||
<RepositoryUrl>https://github.com/collinbarrett/FilterLists</RepositoryUrl>
|
||||
<PackageProjectUrl>https://filterlists.com</PackageProjectUrl>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<Authors>Collin M. Barrett</Authors>
|
||||
<Company>FilterLists</Company>
|
||||
<Product>FilterLists Directory</Product>
|
||||
<Description>The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.</Description>
|
||||
<Copyright>Copyright (c) 2021 Collin M. Barrett</Copyright>
|
||||
<RepositoryUrl>https://github.com/collinbarrett/FilterLists</RepositoryUrl>
|
||||
<PackageProjectUrl>https://filterlists.com</PackageProjectUrl>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="8.1.1" />
|
||||
<PackageReference Include="MediatR.Extensions.Microsoft.DependencyInjection" Version="9.0.0" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="8.1.1" />
|
||||
<PackageReference Include="MediatR.Extensions.Microsoft.DependencyInjection" Version="9.0.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\FilterLists.Directory.Api.Contracts\FilterLists.Directory.Api.Contracts.csproj" />
|
||||
<ProjectReference Include="..\FilterLists.Directory.Infrastructure\FilterLists.Directory.Infrastructure.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\FilterLists.Directory.Api.Contracts\FilterLists.Directory.Api.Contracts.csproj" />
|
||||
<ProjectReference Include="..\FilterLists.Directory.Infrastructure\FilterLists.Directory.Infrastructure.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
@ -47,7 +47,8 @@ public LanguageVmProfile()
|
|||
CreateMap<Language, LanguageVm>()
|
||||
.ForMember(l => l.FilterListIds,
|
||||
o => o.MapFrom(l =>
|
||||
l.FilterListLanguages.Select(fll => fll.FilterListId).OrderBy(flid => flid).AsEnumerable()));
|
||||
l.FilterListLanguages.Select(fll => fll.FilterListId).OrderBy(flid => flid)
|
||||
.AsEnumerable()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -63,25 +63,32 @@ public ListDetailsVmProfile()
|
|||
fl.ViewUrls.OrderBy(u => u.SegmentNumber).ThenBy(u => u.Primariness).AsEnumerable()))
|
||||
.ForMember(fl => fl.MaintainerIds,
|
||||
o => o.MapFrom(fl =>
|
||||
fl.FilterListMaintainers.Select(flm => flm.MaintainerId).OrderBy(mid => mid).AsEnumerable()))
|
||||
fl.FilterListMaintainers.Select(flm => flm.MaintainerId).OrderBy(mid => mid)
|
||||
.AsEnumerable()))
|
||||
.ForMember(fl => fl.UpstreamFilterListIds,
|
||||
o => o.MapFrom(fl =>
|
||||
fl.UpstreamFilterLists.Select(ufl => ufl.UpstreamFilterListId).OrderBy(flid => flid).AsEnumerable()))
|
||||
fl.UpstreamFilterLists.Select(ufl => ufl.UpstreamFilterListId).OrderBy(flid => flid)
|
||||
.AsEnumerable()))
|
||||
.ForMember(fl => fl.ForkFilterListIds,
|
||||
o => o.MapFrom(fl =>
|
||||
fl.ForkFilterLists.Select(ffl => ffl.ForkFilterListId).OrderBy(flid => flid).AsEnumerable()))
|
||||
fl.ForkFilterLists.Select(ffl => ffl.ForkFilterListId).OrderBy(flid => flid)
|
||||
.AsEnumerable()))
|
||||
.ForMember(fl => fl.IncludedInFilterListIds,
|
||||
o => o.MapFrom(fl =>
|
||||
fl.IncludedInFilterLists.Select(iifl => iifl.IncludedInFilterListId).OrderBy(flid => flid).AsEnumerable()))
|
||||
fl.IncludedInFilterLists.Select(iifl => iifl.IncludedInFilterListId).OrderBy(flid => flid)
|
||||
.AsEnumerable()))
|
||||
.ForMember(fl => fl.IncludesFilterListIds,
|
||||
o => o.MapFrom(fl =>
|
||||
fl.IncludesFilterLists.Select(ifl => ifl.IncludesFilterListId).OrderBy(flid => flid).AsEnumerable()))
|
||||
fl.IncludesFilterLists.Select(ifl => ifl.IncludesFilterListId).OrderBy(flid => flid)
|
||||
.AsEnumerable()))
|
||||
.ForMember(fl => fl.DependencyFilterListIds,
|
||||
o => o.MapFrom(fl =>
|
||||
fl.DependencyFilterLists.Select(dfl => dfl.DependencyFilterListId).OrderBy(flid => flid).AsEnumerable()))
|
||||
fl.DependencyFilterLists.Select(dfl => dfl.DependencyFilterListId).OrderBy(flid => flid)
|
||||
.AsEnumerable()))
|
||||
.ForMember(fl => fl.DependentFilterListIds,
|
||||
o => o.MapFrom(fl =>
|
||||
fl.DependentFilterLists.Select(dfl => dfl.DependentFilterListId).OrderBy(flid => flid).AsEnumerable()));
|
||||
fl.DependentFilterLists.Select(dfl => dfl.DependentFilterListId).OrderBy(flid => flid)
|
||||
.AsEnumerable()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -56,7 +56,8 @@ public ListVmProfile()
|
|||
fl.FilterListTags.Select(flt => flt.TagId).OrderBy(tid => tid).AsEnumerable()))
|
||||
.ForMember(fl => fl.MaintainerIds,
|
||||
o => o.MapFrom(fl =>
|
||||
fl.FilterListMaintainers.Select(flm => flm.MaintainerId).OrderBy(mid => mid).AsEnumerable()));
|
||||
fl.FilterListMaintainers.Select(flm => flm.MaintainerId).OrderBy(mid => mid)
|
||||
.AsEnumerable()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,7 +47,8 @@ public MaintainerVmProfile()
|
|||
CreateMap<Maintainer, MaintainerVm>()
|
||||
.ForMember(m => m.FilterListIds,
|
||||
o => o.MapFrom(m =>
|
||||
m.FilterListMaintainers.Select(flm => flm.FilterListId).OrderBy(flid => flid).AsEnumerable()));
|
||||
m.FilterListMaintainers.Select(flm => flm.FilterListId).OrderBy(flid => flid)
|
||||
.AsEnumerable()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,34 +1,35 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<IsPackable>false</IsPackable>
|
||||
<RuntimeIdentifiers>linux-musl-x64;win10-x64</RuntimeIdentifiers>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<IsPackable>false</IsPackable>
|
||||
<RuntimeIdentifiers>linux-musl-x64;win10-x64</RuntimeIdentifiers>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<Authors>Collin M. Barrett</Authors>
|
||||
<Company>FilterLists</Company>
|
||||
<Product>FilterLists Directory</Product>
|
||||
<Description>The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.</Description>
|
||||
<Copyright>Copyright (c) 2021 Collin M. Barrett</Copyright>
|
||||
<RepositoryUrl>https://github.com/collinbarrett/FilterLists</RepositoryUrl>
|
||||
<PackageProjectUrl>https://filterlists.com</PackageProjectUrl>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<Authors>Collin M. Barrett</Authors>
|
||||
<Company>FilterLists</Company>
|
||||
<Product>FilterLists Directory</Product>
|
||||
<Description>The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.</Description>
|
||||
<Copyright>Copyright (c) 2021 Collin M. Barrett</Copyright>
|
||||
<RepositoryUrl>https://github.com/collinbarrett/FilterLists</RepositoryUrl>
|
||||
<PackageProjectUrl>https://filterlists.com</PackageProjectUrl>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
|
||||
<PackageReference Include="xunit" Version="2.4.1" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
|
||||
<PackageReference Include="xunit" Version="2.4.1" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\FilterLists.Directory.Infrastructure.Migrations\FilterLists.Directory.Infrastructure.Migrations.csproj" />
|
||||
<ProjectReference Include="..\FilterLists.Directory.Infrastructure\FilterLists.Directory.Infrastructure.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference
|
||||
Include="..\FilterLists.Directory.Infrastructure.Migrations\FilterLists.Directory.Infrastructure.Migrations.csproj" />
|
||||
<ProjectReference Include="..\FilterLists.Directory.Infrastructure\FilterLists.Directory.Infrastructure.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
@ -1,27 +1,28 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<Authors>Collin M. Barrett</Authors>
|
||||
<Company>FilterLists</Company>
|
||||
<Product>FilterLists Directory</Product>
|
||||
<Description>The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.</Description>
|
||||
<Copyright>Copyright (c) 2021 Collin M. Barrett</Copyright>
|
||||
<RepositoryUrl>https://github.com/collinbarrett/FilterLists</RepositoryUrl>
|
||||
<PackageProjectUrl>https://filterlists.com</PackageProjectUrl>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<Authors>Collin M. Barrett</Authors>
|
||||
<Company>FilterLists</Company>
|
||||
<Product>FilterLists Directory</Product>
|
||||
<Description>The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.</Description>
|
||||
<Copyright>Copyright (c) 2021 Collin M. Barrett</Copyright>
|
||||
<RepositoryUrl>https://github.com/collinbarrett/FilterLists</RepositoryUrl>
|
||||
<PackageProjectUrl>https://filterlists.com</PackageProjectUrl>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="5.0.0" />
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="5.0.10" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="5.0.0" />
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="5.0.10" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\SharedKernel\FilterLists.SharedKernel.Logging\FilterLists.SharedKernel.Logging.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference
|
||||
Include="..\..\SharedKernel\FilterLists.SharedKernel.Logging\FilterLists.SharedKernel.Logging.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
@ -6,9 +6,9 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities
|
|||
public class Dependent
|
||||
{
|
||||
public int DependencyFilterListId { get; set; }
|
||||
public FilterList DependencyFilterList { get; private set; } = null!;
|
||||
public FilterList DependencyFilterList { get; } = null!;
|
||||
public int DependentFilterListId { get; set; }
|
||||
public FilterList DependentFilterList { get; private set; } = null!;
|
||||
public FilterList DependentFilterList { get; } = null!;
|
||||
}
|
||||
|
||||
internal class DependentTypeConfiguration : IEntityTypeConfiguration<Dependent>
|
||||
|
|
@ -16,7 +16,7 @@ internal class DependentTypeConfiguration : IEntityTypeConfiguration<Dependent>
|
|||
public virtual void Configure(EntityTypeBuilder<Dependent> builder)
|
||||
{
|
||||
builder.ToTable(nameof(Dependent) + "s");
|
||||
builder.HasKey(d => new {d.DependencyFilterListId, d.DependentFilterListId});
|
||||
builder.HasKey(d => new { d.DependencyFilterListId, d.DependentFilterListId });
|
||||
builder.HasOne(d => d.DependencyFilterList)
|
||||
.WithMany(fl => fl.DependentFilterLists)
|
||||
.HasForeignKey(d => d.DependencyFilterListId);
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ public class FilterList
|
|||
public string? Description { get; set; }
|
||||
public int? LicenseId { get; set; }
|
||||
public License? License { get; set; }
|
||||
public IReadOnlyCollection<FilterListSyntax> FilterListSyntaxes { get; private set; } = new HashSet<FilterListSyntax>();
|
||||
public IReadOnlyCollection<FilterListLanguage> FilterListLanguages { get; private set; } = new HashSet<FilterListLanguage>();
|
||||
public IReadOnlyCollection<FilterListTag> FilterListTags { get; private set; } = new HashSet<FilterListTag>();
|
||||
public IReadOnlyCollection<FilterListViewUrl> ViewUrls { get; private set; } = new HashSet<FilterListViewUrl>();
|
||||
public IReadOnlyCollection<FilterListSyntax> FilterListSyntaxes { get; } = new HashSet<FilterListSyntax>();
|
||||
public IReadOnlyCollection<FilterListLanguage> FilterListLanguages { get; } = new HashSet<FilterListLanguage>();
|
||||
public IReadOnlyCollection<FilterListTag> FilterListTags { get; } = new HashSet<FilterListTag>();
|
||||
public IReadOnlyCollection<FilterListViewUrl> ViewUrls { get; } = new HashSet<FilterListViewUrl>();
|
||||
public Uri? HomeUrl { get; set; }
|
||||
public Uri? OnionUrl { get; set; }
|
||||
public Uri? PolicyUrl { get; set; }
|
||||
|
|
@ -26,13 +26,16 @@ public class FilterList
|
|||
public Uri? ChatUrl { get; set; }
|
||||
public string? EmailAddress { get; set; }
|
||||
public Uri? DonateUrl { get; set; }
|
||||
public IReadOnlyCollection<FilterListMaintainer> FilterListMaintainers { get; private set; } = new HashSet<FilterListMaintainer>();
|
||||
public IReadOnlyCollection<Fork> UpstreamFilterLists { get; private set; } = new HashSet<Fork>();
|
||||
public IReadOnlyCollection<Fork> ForkFilterLists { get; private set; } = new HashSet<Fork>();
|
||||
public IReadOnlyCollection<Merge> IncludedInFilterLists { get; private set; } = new HashSet<Merge>();
|
||||
public IReadOnlyCollection<Merge> IncludesFilterLists { get; private set; } = new HashSet<Merge>();
|
||||
public IReadOnlyCollection<Dependent> DependencyFilterLists { get; private set; } = new HashSet<Dependent>();
|
||||
public IReadOnlyCollection<Dependent> DependentFilterLists { get; private set; } = new HashSet<Dependent>();
|
||||
|
||||
public IReadOnlyCollection<FilterListMaintainer> FilterListMaintainers { get; } =
|
||||
new HashSet<FilterListMaintainer>();
|
||||
|
||||
public IReadOnlyCollection<Fork> UpstreamFilterLists { get; } = new HashSet<Fork>();
|
||||
public IReadOnlyCollection<Fork> ForkFilterLists { get; } = new HashSet<Fork>();
|
||||
public IReadOnlyCollection<Merge> IncludedInFilterLists { get; } = new HashSet<Merge>();
|
||||
public IReadOnlyCollection<Merge> IncludesFilterLists { get; } = new HashSet<Merge>();
|
||||
public IReadOnlyCollection<Dependent> DependencyFilterLists { get; } = new HashSet<Dependent>();
|
||||
public IReadOnlyCollection<Dependent> DependentFilterLists { get; } = new HashSet<Dependent>();
|
||||
}
|
||||
|
||||
internal class FilterListTypeConfiguration : IEntityTypeConfiguration<FilterList>
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities
|
|||
public class FilterListLanguage
|
||||
{
|
||||
public int FilterListId { get; set; }
|
||||
public FilterList FilterList { get; private set; } = null!;
|
||||
public FilterList FilterList { get; } = null!;
|
||||
public string Iso6391 { get; set; } = null!;
|
||||
public Language Language { get; private set; } = null!;
|
||||
public Language Language { get; } = null!;
|
||||
}
|
||||
|
||||
internal class FilterListLanguageTypeConfiguration : IEntityTypeConfiguration<FilterListLanguage>
|
||||
|
|
@ -16,7 +16,7 @@ internal class FilterListLanguageTypeConfiguration : IEntityTypeConfiguration<Fi
|
|||
public virtual void Configure(EntityTypeBuilder<FilterListLanguage> builder)
|
||||
{
|
||||
builder.ToTable(nameof(FilterListLanguage) + "s");
|
||||
builder.HasKey(fll => new {fll.FilterListId, fll.Iso6391});
|
||||
builder.HasKey(fll => new { fll.FilterListId, fll.Iso6391 });
|
||||
builder.HasDataJsonFile<FilterListLanguage>();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities
|
|||
public class FilterListMaintainer
|
||||
{
|
||||
public int FilterListId { get; set; }
|
||||
public FilterList FilterList { get; private set; } = null!;
|
||||
public FilterList FilterList { get; } = null!;
|
||||
public int MaintainerId { get; set; }
|
||||
public Maintainer Maintainer { get; private set; } = null!;
|
||||
public Maintainer Maintainer { get; } = null!;
|
||||
}
|
||||
|
||||
internal class FilterListMaintainerTypeConfiguration : IEntityTypeConfiguration<FilterListMaintainer>
|
||||
|
|
@ -16,7 +16,7 @@ internal class FilterListMaintainerTypeConfiguration : IEntityTypeConfiguration<
|
|||
public virtual void Configure(EntityTypeBuilder<FilterListMaintainer> builder)
|
||||
{
|
||||
builder.ToTable(nameof(FilterListMaintainer) + "s");
|
||||
builder.HasKey(flm => new {flm.FilterListId, flm.MaintainerId});
|
||||
builder.HasKey(flm => new { flm.FilterListId, flm.MaintainerId });
|
||||
builder.HasDataJsonFile<FilterListMaintainer>();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities
|
|||
public class FilterListSyntax
|
||||
{
|
||||
public int FilterListId { get; set; }
|
||||
public FilterList FilterList { get; private set; } = null!;
|
||||
public FilterList FilterList { get; } = null!;
|
||||
public int SyntaxId { get; set; }
|
||||
public Syntax Syntax { get; private set; } = null!;
|
||||
public Syntax Syntax { get; } = null!;
|
||||
}
|
||||
|
||||
internal class FilterListSyntaxTypeConfiguration : IEntityTypeConfiguration<FilterListSyntax>
|
||||
|
|
@ -16,7 +16,7 @@ internal class FilterListSyntaxTypeConfiguration : IEntityTypeConfiguration<Filt
|
|||
public virtual void Configure(EntityTypeBuilder<FilterListSyntax> builder)
|
||||
{
|
||||
builder.ToTable(nameof(FilterListSyntax) + "es");
|
||||
builder.HasKey(fls => new {fls.FilterListId, fls.SyntaxId});
|
||||
builder.HasKey(fls => new { fls.FilterListId, fls.SyntaxId });
|
||||
builder.HasDataJsonFile<FilterListSyntax>();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities
|
|||
public class FilterListTag
|
||||
{
|
||||
public int FilterListId { get; set; }
|
||||
public FilterList FilterList { get; private set; } = null!;
|
||||
public FilterList FilterList { get; } = null!;
|
||||
public int TagId { get; set; }
|
||||
public Tag Tag { get; private set; } = null!;
|
||||
public Tag Tag { get; } = null!;
|
||||
}
|
||||
|
||||
internal class FilterListTagTypeConfiguration : IEntityTypeConfiguration<FilterListTag>
|
||||
|
|
@ -16,7 +16,7 @@ internal class FilterListTagTypeConfiguration : IEntityTypeConfiguration<FilterL
|
|||
public virtual void Configure(EntityTypeBuilder<FilterListTag> builder)
|
||||
{
|
||||
builder.ToTable(nameof(FilterListTag) + "s");
|
||||
builder.HasKey(flt => new {flt.FilterListId, flt.TagId});
|
||||
builder.HasKey(flt => new { flt.FilterListId, flt.TagId });
|
||||
builder.HasDataJsonFile<FilterListTag>();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ public virtual void Configure(EntityTypeBuilder<FilterListViewUrl> builder)
|
|||
builder.ToTable(nameof(FilterListViewUrl) + "s");
|
||||
builder.Property(u => u.SegmentNumber).HasDefaultValue(1);
|
||||
builder.Property(u => u.Primariness).HasDefaultValue(1);
|
||||
builder.HasIndex(u => new {u.FilterListId, u.SegmentNumber, u.Primariness}).IsUnique();
|
||||
builder.HasIndex(u => new { u.FilterListId, u.SegmentNumber, u.Primariness }).IsUnique();
|
||||
builder.HasDataJsonFile<FilterListViewUrl>();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities
|
|||
public class Fork
|
||||
{
|
||||
public int UpstreamFilterListId { get; set; }
|
||||
public FilterList UpstreamFilterList { get; private set; } = null!;
|
||||
public FilterList UpstreamFilterList { get; } = null!;
|
||||
public int ForkFilterListId { get; set; }
|
||||
public FilterList ForkFilterList { get; private set; } = null!;
|
||||
public FilterList ForkFilterList { get; } = null!;
|
||||
}
|
||||
|
||||
internal class ForkTypeConfiguration : IEntityTypeConfiguration<Fork>
|
||||
|
|
@ -16,7 +16,7 @@ internal class ForkTypeConfiguration : IEntityTypeConfiguration<Fork>
|
|||
public virtual void Configure(EntityTypeBuilder<Fork> builder)
|
||||
{
|
||||
builder.ToTable(nameof(Fork) + "s");
|
||||
builder.HasKey(f => new {f.UpstreamFilterListId, f.ForkFilterListId});
|
||||
builder.HasKey(f => new { f.UpstreamFilterListId, f.ForkFilterListId });
|
||||
builder.HasOne(f => f.UpstreamFilterList)
|
||||
.WithMany(fl => fl.ForkFilterLists)
|
||||
.HasForeignKey(f => f.UpstreamFilterListId);
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ public class Language
|
|||
{
|
||||
public string Iso6391 { get; set; } = null!;
|
||||
public string Name { get; set; } = null!;
|
||||
public IReadOnlyCollection<FilterListLanguage> FilterListLanguages { get; private set; } = new HashSet<FilterListLanguage>();
|
||||
public IReadOnlyCollection<FilterListLanguage> FilterListLanguages { get; } = new HashSet<FilterListLanguage>();
|
||||
}
|
||||
|
||||
internal class LanguageTypeConfiguration : IEntityTypeConfiguration<Language>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ public class License
|
|||
public bool PermitsModification { get; set; }
|
||||
public bool PermitsDistribution { get; set; }
|
||||
public bool PermitsCommercialUse { get; set; }
|
||||
public IReadOnlyCollection<FilterList> FilterLists { get; private set; } = new HashSet<FilterList>();
|
||||
public IReadOnlyCollection<FilterList> FilterLists { get; } = new HashSet<FilterList>();
|
||||
}
|
||||
|
||||
internal class LicenseTypeConfiguration : IEntityTypeConfiguration<License>
|
||||
|
|
|
|||
|
|
@ -12,7 +12,9 @@ public class Maintainer
|
|||
public Uri? Url { get; set; }
|
||||
public string? EmailAddress { get; set; }
|
||||
public string? TwitterHandle { get; set; }
|
||||
public IReadOnlyCollection<FilterListMaintainer> FilterListMaintainers { get; private set; } = new HashSet<FilterListMaintainer>();
|
||||
|
||||
public IReadOnlyCollection<FilterListMaintainer> FilterListMaintainers { get; } =
|
||||
new HashSet<FilterListMaintainer>();
|
||||
}
|
||||
|
||||
internal class MaintainerTypeConfiguration : IEntityTypeConfiguration<Maintainer>
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities
|
|||
public class Merge
|
||||
{
|
||||
public int IncludedInFilterListId { get; set; }
|
||||
public FilterList IncludedInFilterList { get; private set; } = null!;
|
||||
public FilterList IncludedInFilterList { get; } = null!;
|
||||
public int IncludesFilterListId { get; set; }
|
||||
public FilterList IncludesFilterList { get; private set; } = null!;
|
||||
public FilterList IncludesFilterList { get; } = null!;
|
||||
}
|
||||
|
||||
internal class MergeTypeConfiguration : IEntityTypeConfiguration<Merge>
|
||||
|
|
@ -16,7 +16,7 @@ internal class MergeTypeConfiguration : IEntityTypeConfiguration<Merge>
|
|||
public virtual void Configure(EntityTypeBuilder<Merge> builder)
|
||||
{
|
||||
builder.ToTable(nameof(Merge) + "s");
|
||||
builder.HasKey(m => new {m.IncludedInFilterListId, m.IncludesFilterListId});
|
||||
builder.HasKey(m => new { m.IncludedInFilterListId, m.IncludesFilterListId });
|
||||
builder.HasOne(m => m.IncludedInFilterList)
|
||||
.WithMany(fl => fl.IncludesFilterLists)
|
||||
.HasForeignKey(m => m.IncludedInFilterListId);
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ public class Software
|
|||
public Uri? HomeUrl { get; set; }
|
||||
public Uri? DownloadUrl { get; set; }
|
||||
public bool SupportsAbpUrlScheme { get; set; }
|
||||
public IReadOnlyCollection<SoftwareSyntax> SoftwareSyntaxes { get; private set; } = new HashSet<SoftwareSyntax>();
|
||||
public IReadOnlyCollection<SoftwareSyntax> SoftwareSyntaxes { get; } = new HashSet<SoftwareSyntax>();
|
||||
}
|
||||
|
||||
internal class SoftwareTypeConfiguration : IEntityTypeConfiguration<Software>
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities
|
|||
public class SoftwareSyntax
|
||||
{
|
||||
public int SoftwareId { get; set; }
|
||||
public Software Software { get; private set; } = null!;
|
||||
public Software Software { get; } = null!;
|
||||
public int SyntaxId { get; set; }
|
||||
public Syntax Syntax { get; private set; } = null!;
|
||||
public Syntax Syntax { get; } = null!;
|
||||
}
|
||||
|
||||
internal class SoftwareSyntaxTypeConfiguration : IEntityTypeConfiguration<SoftwareSyntax>
|
||||
|
|
@ -16,7 +16,7 @@ internal class SoftwareSyntaxTypeConfiguration : IEntityTypeConfiguration<Softwa
|
|||
public virtual void Configure(EntityTypeBuilder<SoftwareSyntax> builder)
|
||||
{
|
||||
builder.ToTable(nameof(SoftwareSyntax) + "es");
|
||||
builder.HasKey(ss => new {ss.SoftwareId, ss.SyntaxId});
|
||||
builder.HasKey(ss => new { ss.SoftwareId, ss.SyntaxId });
|
||||
builder.HasDataJsonFile<SoftwareSyntax>();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ public class Syntax
|
|||
public string Name { get; set; } = null!;
|
||||
public string? Description { get; set; }
|
||||
public Uri? Url { get; set; }
|
||||
public IReadOnlyCollection<FilterListSyntax> FilterListSyntaxes { get; private set; } = new HashSet<FilterListSyntax>();
|
||||
public IReadOnlyCollection<SoftwareSyntax> SoftwareSyntaxes { get; private set; } = new HashSet<SoftwareSyntax>();
|
||||
public IReadOnlyCollection<FilterListSyntax> FilterListSyntaxes { get; } = new HashSet<FilterListSyntax>();
|
||||
public IReadOnlyCollection<SoftwareSyntax> SoftwareSyntaxes { get; } = new HashSet<SoftwareSyntax>();
|
||||
}
|
||||
|
||||
internal class SyntaxTypeConfiguration : IEntityTypeConfiguration<Syntax>
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ public class Tag
|
|||
public int Id { get; set; }
|
||||
public string Name { get; set; } = null!;
|
||||
public string? Description { get; set; }
|
||||
public IReadOnlyCollection<FilterListTag> FilterListTags { get; private set; } = new HashSet<FilterListTag>();
|
||||
public IReadOnlyCollection<FilterListTag> FilterListTags { get; } = new HashSet<FilterListTag>();
|
||||
}
|
||||
|
||||
internal class TagTypeConfiguration : IEntityTypeConfiguration<Tag>
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ public static void HasDataJsonFile<TEntity>(this EntityTypeBuilder entityTypeBui
|
|||
|
||||
var entitiesJson = File.ReadAllText(path);
|
||||
var entities = JsonSerializer.Deserialize<IEnumerable<TEntity>>(entitiesJson,
|
||||
new JsonSerializerOptions {PropertyNamingPolicy = JsonNamingPolicy.CamelCase});
|
||||
new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase });
|
||||
|
||||
if (entities != null)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,42 +0,0 @@
|
|||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||
<s:String x:Key="/Default/CodeStyle/CodeCleanup/Profiles/=FilterLists_0020Cleanup/@EntryIndexedValue"><?xml version="1.0" encoding="utf-16"?><Profile name="FilterLists Cleanup"><CSReorderTypeMembers>True</CSReorderTypeMembers><XMLReformatCode>True</XMLReformatCode><CSCodeStyleAttributes ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeBraces="True" ArrangeAttributes="True" ArrangeArgumentsStyle="True" ArrangeCodeBodyStyle="True" ArrangeVarStyle="True" ArrangeTrailingCommas="True" /><RemoveCodeRedundanciesVB>True</RemoveCodeRedundanciesVB><Xaml.RedundantFreezeAttribute>True</Xaml.RedundantFreezeAttribute><Xaml.RemoveRedundantModifiersAttribute>True</Xaml.RemoveRedundantModifiersAttribute><Xaml.RemoveRedundantNameAttribute>True</Xaml.RemoveRedundantNameAttribute><Xaml.RemoveRedundantResource>True</Xaml.RemoveRedundantResource><Xaml.RemoveRedundantCollectionProperty>True</Xaml.RemoveRedundantCollectionProperty><Xaml.RemoveRedundantAttachedPropertySetter>True</Xaml.RemoveRedundantAttachedPropertySetter><Xaml.RemoveRedundantStyledValue>True</Xaml.RemoveRedundantStyledValue><Xaml.RemoveRedundantNamespaceAlias>True</Xaml.RemoveRedundantNamespaceAlias><Xaml.RemoveForbiddenResourceName>True</Xaml.RemoveForbiddenResourceName><Xaml.RemoveRedundantGridDefinitionsAttribute>True</Xaml.RemoveRedundantGridDefinitionsAttribute><Xaml.RemoveRedundantGridSpanAttribut>True</Xaml.RemoveRedundantGridSpanAttribut><Xaml.RemoveRedundantUpdateSourceTriggerAttribute>True</Xaml.RemoveRedundantUpdateSourceTriggerAttribute><Xaml.RemoveRedundantBindingModeAttribute>True</Xaml.RemoveRedundantBindingModeAttribute><FormatAttributeQuoteDescriptor>True</FormatAttributeQuoteDescriptor><CorrectVariableKindsDescriptor>True</CorrectVariableKindsDescriptor><VariablesToInnerScopesDescriptor>True</VariablesToInnerScopesDescriptor><StringToTemplatesDescriptor>True</StringToTemplatesDescriptor><RemoveRedundantQualifiersTs>True</RemoveRedundantQualifiersTs><OptimizeImportsTs>True</OptimizeImportsTs><OptimizeReferenceCommentsTs>True</OptimizeReferenceCommentsTs><PublicModifierStyleTs>True</PublicModifierStyleTs><ExplicitAnyTs>True</ExplicitAnyTs><TypeAnnotationStyleTs>True</TypeAnnotationStyleTs><RelativePathStyleTs>True</RelativePathStyleTs><AsInsteadOfCastTs>True</AsInsteadOfCastTs><CssAlphabetizeProperties>True</CssAlphabetizeProperties><JsInsertSemicolon>True</JsInsertSemicolon><JsReformatCode>True</JsReformatCode><JsFormatDocComments>True</JsFormatDocComments><HtmlReformatCode>True</HtmlReformatCode><AspOptimizeRegisterDirectives>True</AspOptimizeRegisterDirectives><VBOptimizeImports>True</VBOptimizeImports><VBShortenReferences>True</VBShortenReferences><RemoveCodeRedundancies>True</RemoveCodeRedundancies><CSUseAutoProperty>True</CSUseAutoProperty><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSArrangeQualifiers>True</CSArrangeQualifiers><CSFixBuiltinTypeReferences>True</CSFixBuiltinTypeReferences><CssReformatCode>True</CssReformatCode><VBReformatCode>True</VBReformatCode><VBFormatDocComments>True</VBFormatDocComments><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings><EmbraceInRegion>False</EmbraceInRegion><RegionName></RegionName></CSOptimizeUsings><CSShortenReferences>True</CSShortenReferences><CSReformatCode>True</CSReformatCode><CSharpFormatDocComments>True</CSharpFormatDocComments></Profile></s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/CodeCleanup/SilentCleanupProfile/@EntryValue">FilterLists Cleanup</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_SIMPLE_EMBEDDED_STATEMENT_ON_SAME_LINE/@EntryValue">NEVER</s:String>
|
||||
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_AFTER_TYPECAST_PARENTHESES/@EntryValue">False</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_AFTER_DECLARATION_LPAR/@EntryValue">True</s:Boolean>
|
||||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_CHAINED_BINARY_EXPRESSIONS/@EntryValue">CHOP_IF_LONG</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_CHAINED_METHOD_CALLS/@EntryValue">CHOP_IF_LONG</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_PARAMETERS_STYLE/@EntryValue">CHOP_IF_LONG</s:String>
|
||||
<s:String x:Key="/Default/Environment/PerformanceGuide/SwitchBehaviour/=AutoRecoverer/@EntryIndexedValue">DO_NOTHING</s:String>
|
||||
<s:String x:Key="/Default/Environment/PerformanceGuide/SwitchBehaviour/=Format/@EntryIndexedValue">DO_NOTHING</s:String>
|
||||
<s:String x:Key="/Default/Environment/PerformanceGuide/SwitchBehaviour/=ShowAnnotations/@EntryIndexedValue">DO_NOTHING</s:String>
|
||||
<s:String x:Key="/Default/Environment/PerformanceGuide/SwitchBehaviour/=SolExp_002DTrack/@EntryIndexedValue">DO_NOTHING</s:String>
|
||||
<s:String x:Key="/Default/Environment/PerformanceGuide/SwitchBehaviour/=StartPage_002DIsDownloadRefreshEnabled/@EntryIndexedValue">DO_NOTHING</s:String>
|
||||
<s:String x:Key="/Default/Environment/PerformanceGuide/SwitchBehaviour/=StartPage_002DOnEnvironmentStatup/@EntryIndexedValue">DO_NOTHING</s:String>
|
||||
<s:String x:Key="/Default/Environment/PerformanceGuide/SwitchBehaviour/=SyncSettings/@EntryIndexedValue">DO_NOTHING</s:String>
|
||||
<s:String x:Key="/Default/Environment/PerformanceGuide/SwitchBehaviour/=TextEditor_002DCodeLens/@EntryIndexedValue">DO_NOTHING</s:String>
|
||||
<s:String x:Key="/Default/Environment/PerformanceGuide/SwitchBehaviour/=TextEditor_002DTrackChanges_002D2/@EntryIndexedValue">DO_NOTHING</s:String>
|
||||
<s:String x:Key="/Default/Environment/PerformanceGuide/SwitchBehaviour/=VCS/@EntryIndexedValue">DO_NOTHING</s:String>
|
||||
<s:String x:Key="/Default/Environment/PerformanceGuide/SwitchBehaviour/=XAML_0020Designer/@EntryIndexedValue">DO_NOTHING</s:String>
|
||||
<s:String x:Key="/Default/Environment/PerformanceGuide/SwitchConflictResolutionMode/=AutoRecoverer/@EntryIndexedValue">DO_NOTHING</s:String>
|
||||
<s:String x:Key="/Default/Environment/PerformanceGuide/SwitchConflictResolutionMode/=Format/@EntryIndexedValue">DO_NOTHING</s:String>
|
||||
<s:String x:Key="/Default/Environment/PerformanceGuide/SwitchConflictResolutionMode/=ShowAnnotations/@EntryIndexedValue">DO_NOTHING</s:String>
|
||||
<s:String x:Key="/Default/Environment/PerformanceGuide/SwitchConflictResolutionMode/=SolExp_002DTrack/@EntryIndexedValue">DO_NOTHING</s:String>
|
||||
<s:String x:Key="/Default/Environment/PerformanceGuide/SwitchConflictResolutionMode/=StartPage_002DIsDownloadRefreshEnabled/@EntryIndexedValue">DO_NOTHING</s:String>
|
||||
<s:String x:Key="/Default/Environment/PerformanceGuide/SwitchConflictResolutionMode/=StartPage_002DOnEnvironmentStatup/@EntryIndexedValue">DO_NOTHING</s:String>
|
||||
<s:String x:Key="/Default/Environment/PerformanceGuide/SwitchConflictResolutionMode/=SyncSettings/@EntryIndexedValue">DO_NOTHING</s:String>
|
||||
<s:String x:Key="/Default/Environment/PerformanceGuide/SwitchConflictResolutionMode/=TextEditor_002DCodeLens/@EntryIndexedValue">DO_NOTHING</s:String>
|
||||
<s:String x:Key="/Default/Environment/PerformanceGuide/SwitchConflictResolutionMode/=TextEditor_002DTrackChanges_002D2/@EntryIndexedValue">DO_NOTHING</s:String>
|
||||
<s:String x:Key="/Default/Environment/PerformanceGuide/SwitchConflictResolutionMode/=VCS/@EntryIndexedValue">DO_NOTHING</s:String>
|
||||
<s:String x:Key="/Default/Environment/PerformanceGuide/SwitchConflictResolutionMode/=XAML_0020Designer/@EntryIndexedValue">DO_NOTHING</s:String>
|
||||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpKeepExistingMigration/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpPlaceEmbeddedOnSameLineMigration/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpUseContinuousIndentInsideBracesMigration/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateBlankLinesAroundFieldToBlankLinesAroundProperty/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Enqueuing/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Hangfire/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Mediat/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Primariness/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Privoxy/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Syntaxes/@EntryIndexedValue">True</s:Boolean>
|
||||
</wpf:ResourceDictionary>
|
||||
Loading…
Reference in a new issue