aboutsummaryrefslogtreecommitdiffstats
path: root/src/Data/Database
diff options
context:
space:
mode:
Diffstat (limited to 'src/Data/Database')
-rw-r--r--src/Data/Database/AppDbContext.cs25
-rw-r--r--src/Data/Database/Base.cs10
-rw-r--r--src/Data/Database/User.cs20
3 files changed, 55 insertions, 0 deletions
diff --git a/src/Data/Database/AppDbContext.cs b/src/Data/Database/AppDbContext.cs
new file mode 100644
index 0000000..9bfabc4
--- /dev/null
+++ b/src/Data/Database/AppDbContext.cs
@@ -0,0 +1,25 @@
+using Microsoft.EntityFrameworkCore;
+
+namespace IOL.WebApi.Template.Data.Database
+{
+ public class AppDbContext : DbContext
+ {
+ public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }
+ public DbSet<User> Users { get; set; }
+
+ protected override void OnModelCreating(ModelBuilder modelBuilder) {
+#if false
+ var seedUser = new User("admin@example.org");
+ seedUser.Id = Guid.NewGuid();
+ seedUser.HashAndSetPassword("asdf1234");
+ modelBuilder.Entity<User>().HasData(seedUser);
+#endif
+
+ modelBuilder.Entity<User>(e => {
+ e.ToTable("users");
+ });
+
+ base.OnModelCreating(modelBuilder);
+ }
+ }
+}
diff --git a/src/Data/Database/Base.cs b/src/Data/Database/Base.cs
new file mode 100644
index 0000000..4b1ea55
--- /dev/null
+++ b/src/Data/Database/Base.cs
@@ -0,0 +1,10 @@
+using System;
+
+namespace IOL.WebApi.Template.Data.Database
+{
+ public class Base
+ {
+ public Guid Id { get; set; }
+ public DateTime Created { get; set; }
+ }
+}
diff --git a/src/Data/Database/User.cs b/src/Data/Database/User.cs
new file mode 100644
index 0000000..31513a3
--- /dev/null
+++ b/src/Data/Database/User.cs
@@ -0,0 +1,20 @@
+using IOL.Helpers;
+
+namespace IOL.WebApi.Template.Data.Database
+{
+ public class User : Base
+ {
+ public User(string username) => Username = username;
+
+ public string Username { get; set; }
+ public string Password { get; set; }
+
+ public void HashAndSetPassword(string password) {
+ Password = PasswordHelper.HashPassword(password);
+ }
+
+ public bool VerifyPassword(string password) {
+ return PasswordHelper.Verify(password, Password);
+ }
+ }
+}