diff --git a/api/src/FilterLists.API/FilterLists.Api.csproj b/api/src/FilterLists.API/FilterLists.Api.csproj index 987954ede..afe259bc7 100644 --- a/api/src/FilterLists.API/FilterLists.Api.csproj +++ b/api/src/FilterLists.API/FilterLists.Api.csproj @@ -15,6 +15,7 @@ + diff --git a/api/src/FilterLists.Api/DependencyInjection/Extensions/ConfigureServicesCollection.cs b/api/src/FilterLists.Api/DependencyInjection/Extensions/ConfigureServicesCollection.cs index 492829966..2a8d3dd78 100644 --- a/api/src/FilterLists.Api/DependencyInjection/Extensions/ConfigureServicesCollection.cs +++ b/api/src/FilterLists.Api/DependencyInjection/Extensions/ConfigureServicesCollection.cs @@ -5,7 +5,7 @@ namespace FilterLists.Api.DependencyInjection.Extensions { public static class ConfigureServicesCollection { - public static IServiceCollection AddFilterListsApi(this IServiceCollection services) + public static void AddFilterListsApi(this IServiceCollection services) { services.AddMvc() .AddJsonOptions(options => @@ -13,7 +13,6 @@ public static IServiceCollection AddFilterListsApi(this IServiceCollection servi //TODO: determine why null values still get returned options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; }); - return services; } } } \ No newline at end of file diff --git a/api/src/FilterLists.Api/Program.cs b/api/src/FilterLists.Api/Program.cs index 7c41ef281..e15400898 100644 --- a/api/src/FilterLists.Api/Program.cs +++ b/api/src/FilterLists.Api/Program.cs @@ -1,10 +1,13 @@ using System.IO; +using JetBrains.Annotations; using Microsoft.AspNetCore.Hosting; namespace FilterLists.Api { + [UsedImplicitly] public class Program { + [UsedImplicitly] public static void Main(string[] args) { var host = new WebHostBuilder() diff --git a/api/src/FilterLists.Api/Startup.cs b/api/src/FilterLists.Api/Startup.cs index ca0445fe1..4a1b43b2e 100644 --- a/api/src/FilterLists.Api/Startup.cs +++ b/api/src/FilterLists.Api/Startup.cs @@ -1,6 +1,7 @@ using FilterLists.Api.DependencyInjection.Extensions; using FilterLists.Data.DependencyInjection.Extensions; using FilterLists.Services.DependencyInjection.Extensions; +using JetBrains.Annotations; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; @@ -25,8 +26,9 @@ public Startup(IHostingEnvironment env, ILoggerFactory loggerFactory) loggerFactory.AddDebug(); } - public IConfigurationRoot Configuration { get; } + private IConfigurationRoot Configuration { get; } + [UsedImplicitly] public void ConfigureServices(IServiceCollection services) { services.AddFilterListsRepositories(Configuration); @@ -34,6 +36,7 @@ public void ConfigureServices(IServiceCollection services) services.AddFilterListsApi(); } + [UsedImplicitly] public void Configure(IApplicationBuilder app) { app.UseMvc(); diff --git a/api/src/FilterLists.Data/DependencyInjection/Extensions/ConfigureServicesCollection.cs b/api/src/FilterLists.Data/DependencyInjection/Extensions/ConfigureServicesCollection.cs index 49fada430..314192bd0 100644 --- a/api/src/FilterLists.Data/DependencyInjection/Extensions/ConfigureServicesCollection.cs +++ b/api/src/FilterLists.Data/DependencyInjection/Extensions/ConfigureServicesCollection.cs @@ -11,15 +11,13 @@ namespace FilterLists.Data.DependencyInjection.Extensions { public static class ConfigureServicesCollection { - public static IServiceCollection AddFilterListsRepositories(this IServiceCollection services, - IConfiguration configuration) + public static void AddFilterListsRepositories(this IServiceCollection services, IConfiguration configuration) { services.AddSingleton(c => configuration); services.AddEntityFramework() .AddDbContext(options => options.UseMySQL(configuration.GetConnectionString("FilterListsConnection"))); services.TryAddScoped(); - return services; } } } \ No newline at end of file diff --git a/api/src/FilterLists.Data/FilterLists.Data.csproj b/api/src/FilterLists.Data/FilterLists.Data.csproj index 0b1ade9c7..a06b8640b 100644 --- a/api/src/FilterLists.Data/FilterLists.Data.csproj +++ b/api/src/FilterLists.Data/FilterLists.Data.csproj @@ -5,6 +5,7 @@ + diff --git a/api/src/FilterLists.Data/Models/BaseEntity.cs b/api/src/FilterLists.Data/Models/BaseEntity.cs index 23d2c1c4c..7ee082c04 100644 --- a/api/src/FilterLists.Data/Models/BaseEntity.cs +++ b/api/src/FilterLists.Data/Models/BaseEntity.cs @@ -4,6 +4,7 @@ using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; +using JetBrains.Annotations; namespace FilterLists.Data.Models { @@ -11,15 +12,18 @@ public abstract class BaseEntity { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + [UsedImplicitly] public long Id { get; set; } [DatabaseGenerated(DatabaseGeneratedOption.Identity)] //TODO: Implement http://stackoverflow.com/a/38102266/2343739 so DefaultValue takes effect in db automatically //For now, manually execute on new tables: InitializeNewTableBaseEntityDefaults.sql [DefaultValue("CURRENT_TIMESTAMP")] + [UsedImplicitly] public DateTime AddedDateUtc { get; set; } [DatabaseGenerated(DatabaseGeneratedOption.Computed)] + [UsedImplicitly] public DateTime? ModifiedDateUtc { get; set; } } } \ No newline at end of file diff --git a/api/src/FilterLists.Data/Models/List.cs b/api/src/FilterLists.Data/Models/List.cs index 059c74fbd..578982cff 100644 --- a/api/src/FilterLists.Data/Models/List.cs +++ b/api/src/FilterLists.Data/Models/List.cs @@ -1,42 +1,52 @@ using System.ComponentModel.DataAnnotations; +using JetBrains.Annotations; namespace FilterLists.Data.Models { public class List : BaseEntity { [MaxLength(1022)] + [UsedImplicitly] public string Description { get; set; } [MaxLength(2083)] [MinLength(6)] + [UsedImplicitly] public string DescriptionSourceUrl { get; set; } [MaxLength(2083)] [MinLength(6)] + [UsedImplicitly] public string DonateUrl { get; set; } [MaxLength(126)] [MinLength(7)] + [UsedImplicitly] public string Email { get; set; } [MaxLength(2083)] [MinLength(6)] + [UsedImplicitly] public string ForumUrl { get; set; } [MaxLength(2083)] [MinLength(6)] + [UsedImplicitly] public string HomeUrl { get; set; } [MaxLength(2083)] [MinLength(6)] + [UsedImplicitly] public string IssuesUrl { get; set; } [MaxLength(126)] + [UsedImplicitly] public string Name { get; set; } [Required] [MaxLength(2083)] [MinLength(6)] + [UsedImplicitly] public string ViewUrl { get; set; } } } \ No newline at end of file diff --git a/api/src/FilterLists.Data/Repositories/Implementations/ListRepository.cs b/api/src/FilterLists.Data/Repositories/Implementations/ListRepository.cs index 2f9f5bba5..de668daee 100644 --- a/api/src/FilterLists.Data/Repositories/Implementations/ListRepository.cs +++ b/api/src/FilterLists.Data/Repositories/Implementations/ListRepository.cs @@ -3,9 +3,11 @@ using FilterLists.Data.Contexts; using FilterLists.Data.Models; using FilterLists.Data.Repositories.Contracts; +using JetBrains.Annotations; namespace FilterLists.Data.Repositories.Implementations { + [UsedImplicitly] public class ListRepository : IListRepository { private readonly FilterListsDbContext _filterListsDbContext; diff --git a/api/src/FilterLists.Services/DependencyInjection/Extensions/ConfigureServicesCollection.cs b/api/src/FilterLists.Services/DependencyInjection/Extensions/ConfigureServicesCollection.cs index 86a1dd271..ac456e9f8 100644 --- a/api/src/FilterLists.Services/DependencyInjection/Extensions/ConfigureServicesCollection.cs +++ b/api/src/FilterLists.Services/DependencyInjection/Extensions/ConfigureServicesCollection.cs @@ -7,10 +7,9 @@ namespace FilterLists.Services.DependencyInjection.Extensions { public static class ConfigureServicesCollection { - public static IServiceCollection AddFilterListsServices(this IServiceCollection services) + public static void AddFilterListsServices(this IServiceCollection services) { services.TryAddScoped(); - return services; } } } \ No newline at end of file diff --git a/api/src/FilterLists.Services/Implementations/ListService.cs b/api/src/FilterLists.Services/Implementations/ListService.cs index 455a275e3..90c8ced26 100644 --- a/api/src/FilterLists.Services/Implementations/ListService.cs +++ b/api/src/FilterLists.Services/Implementations/ListService.cs @@ -2,9 +2,11 @@ using FilterLists.Data.Models; using FilterLists.Data.Repositories.Contracts; using FilterLists.Services.Contracts; +using JetBrains.Annotations; namespace FilterLists.Services.Implementations { + [UsedImplicitly] public class ListService : IListService { private readonly IListRepository _listRepository;