From 791b744c05fb45c53d4099c9a0967681046cb71b Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Sat, 21 Oct 2017 11:48:06 -0500 Subject: [PATCH] extract model interfaces, fix launch url applicationUrl in launchSettings.json no longer allows specifying default path per https://github.com/aspnet/Announcements/issues/226 --- .../Properties/launchSettings.json | 2 +- src/FilterLists.Api/Startup.cs | 3 +-- .../Contexts/FilterListsDbContext.cs | 2 +- .../Contexts/IFilterListsDbContext.cs | 2 +- .../Models/Contracts/IBaseEntity.cs | 11 ++++++++++ .../Models/Contracts/IList.cs | 21 +++++++++++++++++++ .../Models/Contracts/ITableCsv.cs | 13 ++++++++++++ .../{ => Implementations}/BaseEntity.cs | 5 +++-- .../Models/{ => Implementations}/List.cs | 5 +++-- .../Models/{ => Implementations}/TableCsv.cs | 5 +++-- .../Repositories/Contracts/IListRepository.cs | 6 +++--- .../Contracts/ITableCsvRepository.cs | 4 ++-- .../Implementations/ListRepository.cs | 6 +++--- .../Implementations/TableCsvRepository.cs | 4 ++-- .../Contracts/IListService.cs | 4 ++-- .../Implementations/ListService.cs | 4 ++-- 16 files changed, 72 insertions(+), 25 deletions(-) create mode 100644 src/FilterLists.Data/Models/Contracts/IBaseEntity.cs create mode 100644 src/FilterLists.Data/Models/Contracts/IList.cs create mode 100644 src/FilterLists.Data/Models/Contracts/ITableCsv.cs rename src/FilterLists.Data/Models/{ => Implementations}/BaseEntity.cs (84%) rename src/FilterLists.Data/Models/{ => Implementations}/List.cs (87%) rename src/FilterLists.Data/Models/{ => Implementations}/TableCsv.cs (64%) diff --git a/src/FilterLists.Api/Properties/launchSettings.json b/src/FilterLists.Api/Properties/launchSettings.json index 8f5e3bb75..4b7181d65 100644 --- a/src/FilterLists.Api/Properties/launchSettings.json +++ b/src/FilterLists.Api/Properties/launchSettings.json @@ -6,7 +6,7 @@ "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" }, - "applicationUrl": "http://localhost:49980/v1/lists" + "applicationUrl": "http://localhost:49980/" } } } \ No newline at end of file diff --git a/src/FilterLists.Api/Startup.cs b/src/FilterLists.Api/Startup.cs index 0f45b3100..3ffaea01e 100644 --- a/src/FilterLists.Api/Startup.cs +++ b/src/FilterLists.Api/Startup.cs @@ -29,8 +29,7 @@ public void Configure(IApplicationBuilder app) app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto - }); - app.UseMvc(); + }).UseMvc(); } } } \ No newline at end of file diff --git a/src/FilterLists.Data/Contexts/FilterListsDbContext.cs b/src/FilterLists.Data/Contexts/FilterListsDbContext.cs index c42f0ab38..2a3e62dd5 100644 --- a/src/FilterLists.Data/Contexts/FilterListsDbContext.cs +++ b/src/FilterLists.Data/Contexts/FilterListsDbContext.cs @@ -1,4 +1,4 @@ -using FilterLists.Data.Models; +using FilterLists.Data.Models.Implementations; using Microsoft.EntityFrameworkCore; namespace FilterLists.Data.Contexts diff --git a/src/FilterLists.Data/Contexts/IFilterListsDbContext.cs b/src/FilterLists.Data/Contexts/IFilterListsDbContext.cs index 71939e441..e90b00624 100644 --- a/src/FilterLists.Data/Contexts/IFilterListsDbContext.cs +++ b/src/FilterLists.Data/Contexts/IFilterListsDbContext.cs @@ -1,4 +1,4 @@ -using FilterLists.Data.Models; +using FilterLists.Data.Models.Implementations; using Microsoft.EntityFrameworkCore; namespace FilterLists.Data.Contexts diff --git a/src/FilterLists.Data/Models/Contracts/IBaseEntity.cs b/src/FilterLists.Data/Models/Contracts/IBaseEntity.cs new file mode 100644 index 000000000..06c2aa280 --- /dev/null +++ b/src/FilterLists.Data/Models/Contracts/IBaseEntity.cs @@ -0,0 +1,11 @@ +using System; + +namespace FilterLists.Data.Models.Contracts +{ + public interface IBaseEntity + { + long Id { get; set; } + DateTime AddedDateUtc { get; set; } + DateTime? ModifiedDateUtc { get; set; } + } +} \ No newline at end of file diff --git a/src/FilterLists.Data/Models/Contracts/IList.cs b/src/FilterLists.Data/Models/Contracts/IList.cs new file mode 100644 index 000000000..caefb1472 --- /dev/null +++ b/src/FilterLists.Data/Models/Contracts/IList.cs @@ -0,0 +1,21 @@ +using System; + +namespace FilterLists.Data.Models.Contracts +{ + public interface IList + { + string Name { get; set; } + string ViewUrl { get; set; } + string HomeUrl { get; set; } + string Description { get; set; } + string DescriptionSourceUrl { get; set; } + string Author { get; set; } + string ForumUrl { get; set; } + string IssuesUrl { get; set; } + string Email { get; set; } + string DonateUrl { get; set; } + long Id { get; set; } + DateTime AddedDateUtc { get; set; } + DateTime? ModifiedDateUtc { get; set; } + } +} \ No newline at end of file diff --git a/src/FilterLists.Data/Models/Contracts/ITableCsv.cs b/src/FilterLists.Data/Models/Contracts/ITableCsv.cs new file mode 100644 index 000000000..5583fe2ad --- /dev/null +++ b/src/FilterLists.Data/Models/Contracts/ITableCsv.cs @@ -0,0 +1,13 @@ +using System; + +namespace FilterLists.Data.Models.Contracts +{ + public interface ITableCsv + { + string Name { get; set; } + string Url { get; set; } + long Id { get; set; } + DateTime AddedDateUtc { get; set; } + DateTime? ModifiedDateUtc { get; set; } + } +} \ No newline at end of file diff --git a/src/FilterLists.Data/Models/BaseEntity.cs b/src/FilterLists.Data/Models/Implementations/BaseEntity.cs similarity index 84% rename from src/FilterLists.Data/Models/BaseEntity.cs rename to src/FilterLists.Data/Models/Implementations/BaseEntity.cs index 9a10b434a..34f8d0144 100644 --- a/src/FilterLists.Data/Models/BaseEntity.cs +++ b/src/FilterLists.Data/Models/Implementations/BaseEntity.cs @@ -2,10 +2,11 @@ using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; +using FilterLists.Data.Models.Contracts; -namespace FilterLists.Data.Models +namespace FilterLists.Data.Models.Implementations { - public abstract class BaseEntity + public abstract class BaseEntity : IBaseEntity { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] diff --git a/src/FilterLists.Data/Models/List.cs b/src/FilterLists.Data/Models/Implementations/List.cs similarity index 87% rename from src/FilterLists.Data/Models/List.cs rename to src/FilterLists.Data/Models/Implementations/List.cs index 2ba7137a3..7fdf5d9cf 100644 --- a/src/FilterLists.Data/Models/List.cs +++ b/src/FilterLists.Data/Models/Implementations/List.cs @@ -1,8 +1,9 @@ using System.ComponentModel.DataAnnotations; +using FilterLists.Data.Models.Contracts; -namespace FilterLists.Data.Models +namespace FilterLists.Data.Models.Implementations { - public class List : BaseEntity + public class List : BaseEntity, IList { [MaxLength(126)] public string Name { get; set; } diff --git a/src/FilterLists.Data/Models/TableCsv.cs b/src/FilterLists.Data/Models/Implementations/TableCsv.cs similarity index 64% rename from src/FilterLists.Data/Models/TableCsv.cs rename to src/FilterLists.Data/Models/Implementations/TableCsv.cs index d06b257a2..f408cb1cf 100644 --- a/src/FilterLists.Data/Models/TableCsv.cs +++ b/src/FilterLists.Data/Models/Implementations/TableCsv.cs @@ -1,8 +1,9 @@ using System.ComponentModel.DataAnnotations; +using FilterLists.Data.Models.Contracts; -namespace FilterLists.Data.Models +namespace FilterLists.Data.Models.Implementations { - public class TableCsv : BaseEntity + public class TableCsv : BaseEntity, ITableCsv { [Required] [MaxLength(126)] diff --git a/src/FilterLists.Data/Repositories/Contracts/IListRepository.cs b/src/FilterLists.Data/Repositories/Contracts/IListRepository.cs index fa95ca5e1..645864863 100644 --- a/src/FilterLists.Data/Repositories/Contracts/IListRepository.cs +++ b/src/FilterLists.Data/Repositories/Contracts/IListRepository.cs @@ -1,11 +1,11 @@ using System.Collections.Generic; -using FilterLists.Data.Models; +using FilterLists.Data.Models.Contracts; namespace FilterLists.Data.Repositories.Contracts { public interface IListRepository { - IEnumerable GetAll(); - List GetByName(string listName); + IEnumerable GetAll(); + IList GetByName(string listName); } } \ No newline at end of file diff --git a/src/FilterLists.Data/Repositories/Contracts/ITableCsvRepository.cs b/src/FilterLists.Data/Repositories/Contracts/ITableCsvRepository.cs index 2c91e5286..b7fbab848 100644 --- a/src/FilterLists.Data/Repositories/Contracts/ITableCsvRepository.cs +++ b/src/FilterLists.Data/Repositories/Contracts/ITableCsvRepository.cs @@ -1,11 +1,11 @@ using System.Collections.Generic; -using FilterLists.Data.Models; +using FilterLists.Data.Models.Contracts; namespace FilterLists.Data.Repositories.Contracts { public interface ITableCsvRepository { - IEnumerable GetAll(); + IEnumerable GetAll(); string GetUrlByName(string name); } } \ No newline at end of file diff --git a/src/FilterLists.Data/Repositories/Implementations/ListRepository.cs b/src/FilterLists.Data/Repositories/Implementations/ListRepository.cs index 01ed1a7dd..85aa89da1 100644 --- a/src/FilterLists.Data/Repositories/Implementations/ListRepository.cs +++ b/src/FilterLists.Data/Repositories/Implementations/ListRepository.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.Linq; using FilterLists.Data.Contexts; -using FilterLists.Data.Models; +using FilterLists.Data.Models.Contracts; using FilterLists.Data.Repositories.Contracts; namespace FilterLists.Data.Repositories.Implementations @@ -15,12 +15,12 @@ public ListRepository(FilterListsDbContext filterListsDbContext) _filterListsDbContext = filterListsDbContext; } - public IEnumerable GetAll() + public IEnumerable GetAll() { return _filterListsDbContext.List.AsEnumerable(); } - public List GetByName(string listName) + public IList GetByName(string listName) { return _filterListsDbContext.List.First(x => x.Name == listName); } diff --git a/src/FilterLists.Data/Repositories/Implementations/TableCsvRepository.cs b/src/FilterLists.Data/Repositories/Implementations/TableCsvRepository.cs index a1e6362c4..54ff07b4c 100644 --- a/src/FilterLists.Data/Repositories/Implementations/TableCsvRepository.cs +++ b/src/FilterLists.Data/Repositories/Implementations/TableCsvRepository.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.Linq; using FilterLists.Data.Contexts; -using FilterLists.Data.Models; +using FilterLists.Data.Models.Contracts; using FilterLists.Data.Repositories.Contracts; namespace FilterLists.Data.Repositories.Implementations @@ -15,7 +15,7 @@ public TableCsvRepository(FilterListsDbContext filterListsDbContext) _filterListsDbContext = filterListsDbContext; } - public IEnumerable GetAll() + public IEnumerable GetAll() { return _filterListsDbContext.TableCsv.AsEnumerable(); } diff --git a/src/FilterLists.Services/Contracts/IListService.cs b/src/FilterLists.Services/Contracts/IListService.cs index 4001a47db..df4a57c6b 100644 --- a/src/FilterLists.Services/Contracts/IListService.cs +++ b/src/FilterLists.Services/Contracts/IListService.cs @@ -1,10 +1,10 @@ using System.Collections.Generic; -using FilterLists.Data.Models; +using FilterLists.Data.Models.Contracts; namespace FilterLists.Services.Contracts { public interface IListService { - IEnumerable GetAll(); + IEnumerable GetAll(); } } \ No newline at end of file diff --git a/src/FilterLists.Services/Implementations/ListService.cs b/src/FilterLists.Services/Implementations/ListService.cs index 455a275e3..82f262dde 100644 --- a/src/FilterLists.Services/Implementations/ListService.cs +++ b/src/FilterLists.Services/Implementations/ListService.cs @@ -1,5 +1,5 @@ using System.Collections.Generic; -using FilterLists.Data.Models; +using FilterLists.Data.Models.Contracts; using FilterLists.Data.Repositories.Contracts; using FilterLists.Services.Contracts; @@ -14,7 +14,7 @@ public ListService(IListRepository listRepository) _listRepository = listRepository; } - public IEnumerable GetAll() + public IEnumerable GetAll() { return _listRepository.GetAll(); }