diff --git a/SessionCompanion/SessionCompanion.Database/ApplicationDbContext.cs b/SessionCompanion/SessionCompanion.Database/ApplicationDbContext.cs new file mode 100644 index 0000000..9a8bd11 --- /dev/null +++ b/SessionCompanion/SessionCompanion.Database/ApplicationDbContext.cs @@ -0,0 +1,49 @@ +using Microsoft.EntityFrameworkCore; +using SessionCompanion.Database.Tables; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SessionCompanion.Database +{ + public class ApplicationDbContext : DbContext + { + public virtual DbSet Alignments { get; set; } + public virtual DbSet Backgrounds { get; set; } + public virtual DbSet Biographies { get; set; } + public virtual DbSet Characters { get; set; } + public virtual DbSet Classes { get; set; } + public virtual DbSet Races { get; set; } + public virtual DbSet Statistics { get; set; } + public virtual DbSet Users { get; set; } + + public ApplicationDbContext(DbContextOptions options) : base(options) { } + } + + protected override void OnModelCreating(ModelBuilder builder) + { + base.OnModelCreating(builder); + builder.Entity().HasData( + new + { + Id = 1, + Nickname = "Morwiec", + Password = "123" + }, + new + { + Id = 2, + Nickname = "Cichoklepiec", + Password = "123" + }, + new + { + Id = 3, + Nickname = "Ruletka", + Password = "123" + } + ); + } +} diff --git a/SessionCompanion/SessionCompanion.Database/SessionCompanion.Database.csproj b/SessionCompanion/SessionCompanion.Database/SessionCompanion.Database.csproj new file mode 100644 index 0000000..b9c845f --- /dev/null +++ b/SessionCompanion/SessionCompanion.Database/SessionCompanion.Database.csproj @@ -0,0 +1,15 @@ + + + + net5.0 + + + + + + + + + + + diff --git a/SessionCompanion/SessionCompanion.Database/Tables/Alignment.cs b/SessionCompanion/SessionCompanion.Database/Tables/Alignment.cs new file mode 100644 index 0000000..a5e5d2c --- /dev/null +++ b/SessionCompanion/SessionCompanion.Database/Tables/Alignment.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace SessionCompanion.Database.Tables +{ + public class Alignment : BaseEntity + { + public virtual ICollection Biography { get; set; } + } +} diff --git a/SessionCompanion/SessionCompanion.Database/Tables/Background.cs b/SessionCompanion/SessionCompanion.Database/Tables/Background.cs new file mode 100644 index 0000000..7bedfae --- /dev/null +++ b/SessionCompanion/SessionCompanion.Database/Tables/Background.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace SessionCompanion.Database.Tables +{ + public class Background : BaseEntity + { + public virtual ICollection Biography { get; set; } + } +} diff --git a/SessionCompanion/SessionCompanion.Database/Tables/BaseEntity.cs b/SessionCompanion/SessionCompanion.Database/Tables/BaseEntity.cs new file mode 100644 index 0000000..4761d98 --- /dev/null +++ b/SessionCompanion/SessionCompanion.Database/Tables/BaseEntity.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SessionCompanion.Database.Tables +{ + public class BaseEntity + { + [Key] + public int Id { get; set; } + } +} diff --git a/SessionCompanion/SessionCompanion.Database/Tables/Biography.cs b/SessionCompanion/SessionCompanion.Database/Tables/Biography.cs new file mode 100644 index 0000000..512a813 --- /dev/null +++ b/SessionCompanion/SessionCompanion.Database/Tables/Biography.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; +using System.Text; + +namespace SessionCompanion.Database.Tables +{ + public class Biography : BaseEntity + { + [ForeignKey(nameof(Character))] + public int CharacterId { get; set; } + public virtual Character Character { get; set; } + + public string Name { get; set; } + + [ForeignKey(nameof(Class))] + public int ClassId { get; set; } + public virtual Class Class { get; set; } + + [ForeignKey(nameof(Race))] + public int RaceId { get; set; } + public virtual Race Race { get; set; } + + [ForeignKey(nameof(Alignment))] + public int AlignmentId { get; set; } + public virtual Alignment Alignment { get; set; } + + [ForeignKey(nameof(Background))] + public int BackgroundId { get; set; } + public virtual Background Background { get; set; } + + public string Sex { get; set; } + } +} diff --git a/SessionCompanion/SessionCompanion.Database/Tables/Character.cs b/SessionCompanion/SessionCompanion.Database/Tables/Character.cs new file mode 100644 index 0000000..0c2cff7 --- /dev/null +++ b/SessionCompanion/SessionCompanion.Database/Tables/Character.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Text; + +namespace SessionCompanion.Database.Tables +{ + public class Character : BaseEntity + { + [ForeignKey(nameof(User))] + public int UserId { get; set; } + public virtual User User { get; set; } + public virtual Biography Biography { get; set; } + public virtual Statistics Statistics { get; set; } + } +} diff --git a/SessionCompanion/SessionCompanion.Database/Tables/Class.cs b/SessionCompanion/SessionCompanion.Database/Tables/Class.cs new file mode 100644 index 0000000..ce73e7c --- /dev/null +++ b/SessionCompanion/SessionCompanion.Database/Tables/Class.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace SessionCompanion.Database.Tables +{ + public class Class : BaseEntity + { + public string Name { get; set; } + //public int HitDie { get; set; } + + public virtual ICollection Biography { get; set; } + } +} diff --git a/SessionCompanion/SessionCompanion.Database/Tables/Race.cs b/SessionCompanion/SessionCompanion.Database/Tables/Race.cs new file mode 100644 index 0000000..07b04a1 --- /dev/null +++ b/SessionCompanion/SessionCompanion.Database/Tables/Race.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace SessionCompanion.Database.Tables +{ + public class Race : BaseEntity + { + public string Name { get; set; } + public virtual ICollection Biography { get; set; } + } +} diff --git a/SessionCompanion/SessionCompanion.Database/Tables/Statistics.cs b/SessionCompanion/SessionCompanion.Database/Tables/Statistics.cs new file mode 100644 index 0000000..a5c36e5 --- /dev/null +++ b/SessionCompanion/SessionCompanion.Database/Tables/Statistics.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; +using System.Text; + +namespace SessionCompanion.Database.Tables +{ + public class Statistics : BaseEntity + { + [ForeignKey(nameof(Character))] + public int CharacterId { get; set; } + public virtual Character Character { get; set; } + + public int ExperiencePoints { get; set; } + public int Level { get; set; } + public int Speed { get; set; } + public int Initiative { get; set; } + public int HealthPoints { get; set; } + public int CurrentHealthPoints { get; set; } + public int ArmorClass { get; set; } + public int Proficiency { get; set; } + } +} diff --git a/SessionCompanion/SessionCompanion.Database/Tables/User.cs b/SessionCompanion/SessionCompanion.Database/Tables/User.cs new file mode 100644 index 0000000..bbebdeb --- /dev/null +++ b/SessionCompanion/SessionCompanion.Database/Tables/User.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace SessionCompanion.Database.Tables +{ + public class User : BaseEntity + { + public string Nickname { get; set; } + public string Password { get; set; } + public ICollection Character { get; set; } + } +} diff --git a/SessionCompanion/SessionCompanion.sln b/SessionCompanion/SessionCompanion.sln index d6d9420..0b42c62 100644 --- a/SessionCompanion/SessionCompanion.sln +++ b/SessionCompanion/SessionCompanion.sln @@ -1,25 +1,31 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30717.126 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SessionCompanion", "SessionCompanion\SessionCompanion.csproj", "{C646135F-16CE-4B16-B041-252D343D4E01}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C646135F-16CE-4B16-B041-252D343D4E01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C646135F-16CE-4B16-B041-252D343D4E01}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C646135F-16CE-4B16-B041-252D343D4E01}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C646135F-16CE-4B16-B041-252D343D4E01}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {121AE434-C579-4495-9318-0D7D7DBE0FD8} - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30717.126 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SessionCompanion", "SessionCompanion\SessionCompanion.csproj", "{C646135F-16CE-4B16-B041-252D343D4E01}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SessionCompanion.Database", "SessionCompanion.Database\SessionCompanion.Database.csproj", "{CA05189B-A4AB-4946-80DC-EFA075A10F09}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C646135F-16CE-4B16-B041-252D343D4E01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C646135F-16CE-4B16-B041-252D343D4E01}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C646135F-16CE-4B16-B041-252D343D4E01}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C646135F-16CE-4B16-B041-252D343D4E01}.Release|Any CPU.Build.0 = Release|Any CPU + {CA05189B-A4AB-4946-80DC-EFA075A10F09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CA05189B-A4AB-4946-80DC-EFA075A10F09}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CA05189B-A4AB-4946-80DC-EFA075A10F09}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CA05189B-A4AB-4946-80DC-EFA075A10F09}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {121AE434-C579-4495-9318-0D7D7DBE0FD8} + EndGlobalSection +EndGlobal