diff --git a/src/Robware.Api.Auth.sln b/src/Robware.Api.Auth.sln
index 3b269de..ecb6bfa 100644
--- a/src/Robware.Api.Auth.sln
+++ b/src/Robware.Api.Auth.sln
@@ -13,7 +13,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robware.Auth.Tests", "Robwa
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "_build", "..\build\_build.csproj", "{19A36DA9-BFBF-4988-B7C7-4808D6B57246}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robware.Data.MongoDB", "Robware.Data.MongoDB\Robware.Data.MongoDB.csproj", "{574A8F26-06E4-4225-AE82-5824A721DD10}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robware.Data", "Robware.Data\Robware.Data.csproj", "{574A8F26-06E4-4225-AE82-5824A721DD10}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/src/Robware.Api.Auth/Robware.Api.Auth.csproj b/src/Robware.Api.Auth/Robware.Api.Auth.csproj
index 7d8d017..dfbe54b 100644
--- a/src/Robware.Api.Auth/Robware.Api.Auth.csproj
+++ b/src/Robware.Api.Auth/Robware.Api.Auth.csproj
@@ -6,7 +6,7 @@
-
+
diff --git a/src/Robware.Api.Auth/Startup.cs b/src/Robware.Api.Auth/Startup.cs
index 148d473..d39f667 100644
--- a/src/Robware.Api.Auth/Startup.cs
+++ b/src/Robware.Api.Auth/Startup.cs
@@ -6,7 +6,7 @@ using Microsoft.Extensions.Hosting;
using MongoDB.Driver;
using Robware.Auth.API;
using Robware.Auth.Users;
-using Robware.Data.MongoDB;
+using Robware.Data;
namespace Robware.Api.Auth {
public class Startup {
diff --git a/src/Robware.Data.MongoDB/ApiKeyRepository.cs b/src/Robware.Data.MongoDB/ApiKeyRepository.cs
index bdb7382..de618b4 100644
--- a/src/Robware.Data.MongoDB/ApiKeyRepository.cs
+++ b/src/Robware.Data.MongoDB/ApiKeyRepository.cs
@@ -1,7 +1,7 @@
using Robware.Auth.API;
using System.Threading.Tasks;
-namespace Robware.Data.MongoDB {
+namespace Robware.Data {
public class ApiKeyRepository : IApiKeys {
public Task Get(string key) {
throw new System.NotImplementedException();
diff --git a/src/Robware.Data.MongoDB/UserRepository.cs b/src/Robware.Data.MongoDB/UserRepository.cs
index 1191552..7539a1d 100644
--- a/src/Robware.Data.MongoDB/UserRepository.cs
+++ b/src/Robware.Data.MongoDB/UserRepository.cs
@@ -1,10 +1,10 @@
using MongoDB.Driver;
using Robware.Auth.Users;
-using Robware.Data.MongoDB.Users;
-using Robware.Data.MongoDB.Users.States;
+using Robware.Data.Users;
+using Robware.Data.Users.States;
using System.Threading.Tasks;
-namespace Robware.Data.MongoDB {
+namespace Robware.Data {
public class UserRepository : IUsers {
IMongoCollection _collection;
diff --git a/src/Robware.Data.MongoDB/Users/States/UserState.cs b/src/Robware.Data.MongoDB/Users/States/UserState.cs
index c679adc..eac2a3c 100644
--- a/src/Robware.Data.MongoDB/Users/States/UserState.cs
+++ b/src/Robware.Data.MongoDB/Users/States/UserState.cs
@@ -1,7 +1,7 @@
using MongoDB.Bson.Serialization.Attributes;
using System;
-namespace Robware.Data.MongoDB.Users.States {
+namespace Robware.Data.Users.States {
public class UserState {
[BsonId]
public int Id { get; set; }
diff --git a/src/Robware.Data/ApiKeyRepository.cs b/src/Robware.Data/ApiKeyRepository.cs
new file mode 100644
index 0000000..de618b4
--- /dev/null
+++ b/src/Robware.Data/ApiKeyRepository.cs
@@ -0,0 +1,10 @@
+using Robware.Auth.API;
+using System.Threading.Tasks;
+
+namespace Robware.Data {
+ public class ApiKeyRepository : IApiKeys {
+ public Task Get(string key) {
+ throw new System.NotImplementedException();
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Robware.Data.MongoDB/Robware.Data.MongoDB.csproj b/src/Robware.Data/Robware.Data.csproj
similarity index 100%
rename from src/Robware.Data.MongoDB/Robware.Data.MongoDB.csproj
rename to src/Robware.Data/Robware.Data.csproj
diff --git a/src/Robware.Data/UserRepository.cs b/src/Robware.Data/UserRepository.cs
new file mode 100644
index 0000000..7539a1d
--- /dev/null
+++ b/src/Robware.Data/UserRepository.cs
@@ -0,0 +1,23 @@
+using MongoDB.Driver;
+using Robware.Auth.Users;
+using Robware.Data.Users;
+using Robware.Data.Users.States;
+using System.Threading.Tasks;
+
+namespace Robware.Data {
+ public class UserRepository : IUsers {
+ IMongoCollection _collection;
+
+ public UserRepository(IMongoDatabase database) {
+ _collection = database.GetCollection("users");
+ }
+
+ public async Task GetByEmail(string email) {
+ var result = (await _collection.FindAsync(user => user.Email == email)).FirstOrDefault();
+ if (result == null)
+ throw new UserNotFoundException(email);
+
+ return new DatabaseUser(result);
+ }
+ }
+}
diff --git a/src/Robware.Data.MongoDB/Users/DatabaseUser.cs b/src/Robware.Data/Users/DatabaseUser.cs
similarity index 68%
rename from src/Robware.Data.MongoDB/Users/DatabaseUser.cs
rename to src/Robware.Data/Users/DatabaseUser.cs
index 876dc76..bdf3834 100644
--- a/src/Robware.Data.MongoDB/Users/DatabaseUser.cs
+++ b/src/Robware.Data/Users/DatabaseUser.cs
@@ -1,7 +1,7 @@
using Robware.Auth.Users;
-using Robware.Data.MongoDB.Users.States;
+using Robware.Data.Users.States;
-namespace Robware.Data.MongoDB.Users {
+namespace Robware.Data.Users {
public class DatabaseUser : User {
public DatabaseUser(UserState state) {
Username = state.Email;
diff --git a/src/Robware.Data/Users/States/UserState.cs b/src/Robware.Data/Users/States/UserState.cs
new file mode 100644
index 0000000..eac2a3c
--- /dev/null
+++ b/src/Robware.Data/Users/States/UserState.cs
@@ -0,0 +1,12 @@
+using MongoDB.Bson.Serialization.Attributes;
+using System;
+
+namespace Robware.Data.Users.States {
+ public class UserState {
+ [BsonId]
+ public int Id { get; set; }
+ public string Email { get; set; }
+ public string Password { get; set; }
+ public DateTime Created{ get; set; }
+ }
+}
\ No newline at end of file