diff --git a/api/FilterLists.API/FilterLists.API.csproj b/api/FilterLists.API/FilterLists.API.csproj
index 1ad66a36e..72f4c59cc 100644
--- a/api/FilterLists.API/FilterLists.API.csproj
+++ b/api/FilterLists.API/FilterLists.API.csproj
@@ -19,6 +19,7 @@
+
diff --git a/api/FilterLists.API/Program.cs b/api/FilterLists.API/Program.cs
index d89e112d2..1e318a932 100644
--- a/api/FilterLists.API/Program.cs
+++ b/api/FilterLists.API/Program.cs
@@ -1,7 +1,7 @@
using System.IO;
using Microsoft.AspNetCore.Hosting;
-namespace FilterLists.API
+namespace FilterLists.Api
{
public class Program
{
diff --git a/api/FilterLists.API/Startup.cs b/api/FilterLists.API/Startup.cs
index ddebe63d4..7b20db5fd 100644
--- a/api/FilterLists.API/Startup.cs
+++ b/api/FilterLists.API/Startup.cs
@@ -1,4 +1,6 @@
using FilterLists.Data;
+using FilterLists.Data.Contexts;
+using FilterLists.Services;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.EntityFrameworkCore.Infrastructure;
@@ -8,7 +10,7 @@
using MySQL.Data.EntityFrameworkCore;
using MySQL.Data.EntityFrameworkCore.Extensions;
-namespace FilterLists.API
+namespace FilterLists.Api
{
public class Startup
{
@@ -30,9 +32,10 @@ public void ConfigureServices(IServiceCollection services)
// Add framework services.
services.AddEntityFramework()
.AddEntityFrameworkMySQL()
- .AddDbContext(options =>
+ .AddDbContext(options =>
options.UseMySQL(Configuration.GetConnectionString("FilterListsConnection")));
services.AddMvc();
+ services.AddTransient();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
diff --git a/api/FilterLists.API/Controllers/ValuesController.cs b/api/FilterLists.Api/Controllers/ListsController.cs
similarity index 50%
rename from api/FilterLists.API/Controllers/ValuesController.cs
rename to api/FilterLists.Api/Controllers/ListsController.cs
index 09e7781d5..41460e60e 100644
--- a/api/FilterLists.API/Controllers/ValuesController.cs
+++ b/api/FilterLists.Api/Controllers/ListsController.cs
@@ -1,38 +1,47 @@
using System.Collections.Generic;
+using FilterLists.Services;
using Microsoft.AspNetCore.Mvc;
-namespace FilterLists.API.Controllers
+namespace FilterLists.Api.Controllers
{
[Route("api/[controller]")]
- public class ValuesController : Controller
+ public class ListsController : Controller
{
- // GET api/values
+ private readonly IListService _listService;
+
+ public ListsController(IListService listService)
+ {
+ _listService = listService;
+ }
+
+ // GET api/lists
[HttpGet]
public IEnumerable Get()
{
- return new[] {"value1", "value2"};
+ var lists = _listService.Lists;
+ return (IEnumerable) lists;
}
- // GET api/values/5
+ // GET api/lists/5
[HttpGet("{id}")]
public string Get(int id)
{
- return "value";
+ return "list";
}
- // POST api/values
+ // POST api/lists
[HttpPost]
public void Post([FromBody] string value)
{
}
- // PUT api/values/5
+ // PUT api/lists/5
[HttpPut("{id}")]
public void Put(int id, [FromBody] string value)
{
}
- // DELETE api/values/5
+ // DELETE api/lists/5
[HttpDelete("{id}")]
public void Delete(int id)
{
diff --git a/api/FilterLists.Data.Contracts/Contexts/IFilterListsDbContext.cs b/api/FilterLists.Data.Contracts/Contexts/IFilterListsDbContext.cs
new file mode 100644
index 000000000..a686a85ba
--- /dev/null
+++ b/api/FilterLists.Data.Contracts/Contexts/IFilterListsDbContext.cs
@@ -0,0 +1,6 @@
+namespace FilterLists.Data.Contracts.Contexts
+{
+ public interface IFilterListsDbContext
+ {
+ }
+}
\ No newline at end of file
diff --git a/api/FilterLists.Data.Contracts/IListRepository.cs b/api/FilterLists.Data.Contracts/IListRepository.cs
deleted file mode 100644
index 1f3470961..000000000
--- a/api/FilterLists.Data.Contracts/IListRepository.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-namespace FilterLists.Data.Contracts
-{
- public interface IListRepository
- {
- }
-}
\ No newline at end of file
diff --git a/api/FilterLists.Data.Contracts/Repositories/IListRepository.cs b/api/FilterLists.Data.Contracts/Repositories/IListRepository.cs
new file mode 100644
index 000000000..854f6b5d6
--- /dev/null
+++ b/api/FilterLists.Data.Contracts/Repositories/IListRepository.cs
@@ -0,0 +1,6 @@
+namespace FilterLists.Data.Contracts.Repositories
+{
+ public interface IListRepository
+ {
+ }
+}
\ No newline at end of file
diff --git a/api/FilterLists.Data/Contexts/FilterListsDbContext.cs b/api/FilterLists.Data/Contexts/FilterListsDbContext.cs
new file mode 100644
index 000000000..012a8c1e4
--- /dev/null
+++ b/api/FilterLists.Data/Contexts/FilterListsDbContext.cs
@@ -0,0 +1,20 @@
+using FilterLists.Data.Contracts.Contexts;
+using FilterLists.Models;
+using Microsoft.EntityFrameworkCore;
+
+namespace FilterLists.Data.Contexts
+{
+ public class FilterListsDbContext : DbContext, IFilterListsDbContext
+ {
+ public FilterListsDbContext(DbContextOptions options)
+ : base(options)
+ {
+ }
+
+ public FilterListsDbContext()
+ {
+ }
+
+ public DbSet Lists { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/api/FilterLists.Data/FilterListsContext.cs b/api/FilterLists.Data/FilterListsContext.cs
deleted file mode 100644
index 9b46270ca..000000000
--- a/api/FilterLists.Data/FilterListsContext.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using FilterLists.Models;
-using Microsoft.EntityFrameworkCore;
-
-namespace FilterLists.Data
-{
- public class FilterListsContext : DbContext
- {
- public FilterListsContext(DbContextOptions options)
- : base(options)
- {
- }
-
- public FilterListsContext()
- {
- }
-
- public DbSet Lists { get; set; }
- }
-}
\ No newline at end of file
diff --git a/api/FilterLists.Data/ListRepository.cs b/api/FilterLists.Data/ListRepository.cs
deleted file mode 100644
index 02d9399f2..000000000
--- a/api/FilterLists.Data/ListRepository.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using FilterLists.Data.Contracts;
-using FilterLists.Models;
-
-namespace FilterLists.Data
-{
- public class ListRepository : Repository, IListRepository
- {
- public ListRepository(FilterListsContext context) : base(context)
- {
- }
- }
-}
\ No newline at end of file
diff --git a/api/FilterLists.Data/IRepository.cs b/api/FilterLists.Data/Repositories/IRepository.cs
similarity index 90%
rename from api/FilterLists.Data/IRepository.cs
rename to api/FilterLists.Data/Repositories/IRepository.cs
index ff56d8eb9..cf0a28715 100644
--- a/api/FilterLists.Data/IRepository.cs
+++ b/api/FilterLists.Data/Repositories/IRepository.cs
@@ -3,7 +3,7 @@
using System.Collections.Generic;
using FilterLists.Models;
-namespace FilterLists.Data
+namespace FilterLists.Data.Repositories
{
public interface IRepository where T : BaseEntity
{
diff --git a/api/FilterLists.Data/Repositories/ListRepository.cs b/api/FilterLists.Data/Repositories/ListRepository.cs
new file mode 100644
index 000000000..7d34105ae
--- /dev/null
+++ b/api/FilterLists.Data/Repositories/ListRepository.cs
@@ -0,0 +1,13 @@
+using FilterLists.Data.Contexts;
+using FilterLists.Data.Contracts.Repositories;
+using FilterLists.Models;
+
+namespace FilterLists.Data.Repositories
+{
+ public class ListRepository : Repository, IListRepository
+ {
+ public ListRepository(FilterListsDbContext context) : base(context)
+ {
+ }
+ }
+}
\ No newline at end of file
diff --git a/api/FilterLists.Data/Repository.cs b/api/FilterLists.Data/Repositories/Repository.cs
similarity index 87%
rename from api/FilterLists.Data/Repository.cs
rename to api/FilterLists.Data/Repositories/Repository.cs
index 8d231ef91..50758914b 100644
--- a/api/FilterLists.Data/Repository.cs
+++ b/api/FilterLists.Data/Repositories/Repository.cs
@@ -3,17 +3,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using FilterLists.Data.Contexts;
using FilterLists.Models;
using Microsoft.EntityFrameworkCore;
-namespace FilterLists.Data
+namespace FilterLists.Data.Repositories
{
public class Repository : IRepository where T : BaseEntity
{
- private readonly FilterListsContext _context;
+ private readonly FilterListsDbContext _context;
private readonly DbSet _entities;
- public Repository(FilterListsContext context)
+ public Repository(FilterListsDbContext context)
{
_context = context;
_entities = context.Set();
diff --git a/api/FilterLists.Models/List.cs b/api/FilterLists.Models/List.cs
index 2ebf2235d..f7fcf103a 100644
--- a/api/FilterLists.Models/List.cs
+++ b/api/FilterLists.Models/List.cs
@@ -11,7 +11,7 @@ public class List : BaseEntity
[StringLength(128)] [Column("email")] public string Email;
[StringLength(512)] [Column("forum_url")] public string ForumUrl;
[StringLength(512)] [Column("home_url")] public string HomeUrl;
- [Key] [Column("id")] public int Id;
+ [Key] [Column("id")] public new int Id;
[StringLength(512)] [Column("issues_url")] public string IssuesUrl;
[StringLength(256)] [Column("name")] public string Name;
[StringLength(512)] [Column("view_url")] public string ViewUrl;
diff --git a/api/FilterLists.Services/FilterLists.Services.csproj b/api/FilterLists.Services/FilterLists.Services.csproj
new file mode 100644
index 000000000..1c684d5a5
--- /dev/null
+++ b/api/FilterLists.Services/FilterLists.Services.csproj
@@ -0,0 +1,12 @@
+
+
+
+ netcoreapp1.1
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/FilterLists.Services/IListService.cs b/api/FilterLists.Services/IListService.cs
new file mode 100644
index 000000000..30be47ba2
--- /dev/null
+++ b/api/FilterLists.Services/IListService.cs
@@ -0,0 +1,10 @@
+using System.Linq;
+using FilterLists.Models;
+
+namespace FilterLists.Services
+{
+ public interface IListService
+ {
+ IQueryable Lists { get; }
+ }
+}
\ No newline at end of file
diff --git a/api/FilterLists.Services/ListService.cs b/api/FilterLists.Services/ListService.cs
new file mode 100644
index 000000000..4fe9c7e37
--- /dev/null
+++ b/api/FilterLists.Services/ListService.cs
@@ -0,0 +1,18 @@
+using System.Linq;
+using FilterLists.Data.Repositories;
+using FilterLists.Models;
+
+namespace FilterLists.Services
+{
+ public class ListService : IListService
+ {
+ private readonly IRepository _listRepository;
+
+ public ListService(IRepository listRepository)
+ {
+ _listRepository = listRepository;
+ }
+
+ public IQueryable Lists => (IQueryable) _listRepository.GetAll();
+ }
+}
\ No newline at end of file
diff --git a/api/FilterLists.sln b/api/FilterLists.sln
index 1aee0ff6f..0ec17ca4c 100644
--- a/api/FilterLists.sln
+++ b/api/FilterLists.sln
@@ -11,6 +11,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FilterLists.Models", "Filte
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FilterLists.Data.Contracts", "FilterLists.Data.Contracts\FilterLists.Data.Contracts.csproj", "{07A5064E-1CB9-4990-84F8-25A9A89B1D45}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FilterLists.Services", "FilterLists.Services\FilterLists.Services.csproj", "{9F296ECF-97C9-47E6-A794-5AD900ECFE6C}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -33,6 +35,10 @@ Global
{07A5064E-1CB9-4990-84F8-25A9A89B1D45}.Debug|Any CPU.Build.0 = Debug|Any CPU
{07A5064E-1CB9-4990-84F8-25A9A89B1D45}.Release|Any CPU.ActiveCfg = Release|Any CPU
{07A5064E-1CB9-4990-84F8-25A9A89B1D45}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9F296ECF-97C9-47E6-A794-5AD900ECFE6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9F296ECF-97C9-47E6-A794-5AD900ECFE6C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9F296ECF-97C9-47E6-A794-5AD900ECFE6C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9F296ECF-97C9-47E6-A794-5AD900ECFE6C}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE