diff options
| author | Kamen Mladenov <kamen.d.mladenov@protonmail.com> | 2021-04-09 19:51:35 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-09 19:51:35 +0300 |
| commit | 233f38915ba0079079233eff55434ef349c05c45 (patch) | |
| tree | 6c5f69017865bcab87355e910c87339453da1406 /src/DevHive.Data/DevHiveContext.cs | |
| parent | f4a70c6430db923af9fa9958a11c2d6612cb52cc (diff) | |
| parent | a992357efcf1bc1ece81b95ecee5e05a0b73bfdc (diff) | |
| download | DevHive-main.tar DevHive-main.tar.gz DevHive-main.zip | |
Merge pull request #28 from Team-Kaleidoscope/devHEADv0.2mainheroku/main
Second stage: Complete
Diffstat (limited to 'src/DevHive.Data/DevHiveContext.cs')
| -rw-r--r-- | src/DevHive.Data/DevHiveContext.cs | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/src/DevHive.Data/DevHiveContext.cs b/src/DevHive.Data/DevHiveContext.cs deleted file mode 100644 index 9de33c3..0000000 --- a/src/DevHive.Data/DevHiveContext.cs +++ /dev/null @@ -1,115 +0,0 @@ -using System; -using DevHive.Data.Models; -using DevHive.Data.RelationModels; -using Microsoft.AspNetCore.Identity.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore; - -namespace DevHive.Data -{ - public class DevHiveContext : IdentityDbContext<User, Role, Guid> - { - public DevHiveContext(DbContextOptions<DevHiveContext> options) - : base(options) { } - - public DbSet<Technology> Technologies { get; set; } - public DbSet<Language> Languages { get; set; } - public DbSet<Post> Posts { get; set; } - public DbSet<PostAttachments> PostAttachments { get; set; } - public DbSet<Comment> Comments { get; set; } - public DbSet<Rating> Rating { get; set; } - public DbSet<RatedPost> RatedPost { get; set; } - public DbSet<UserRate> UserRate { get; set; } - - protected override void OnModelCreating(ModelBuilder builder) - { - /* User */ - builder.Entity<User>() - .HasIndex(x => x.UserName) - .IsUnique(); - - builder.Entity<User>() - .HasOne(x => x.ProfilePicture) - .WithOne(x => x.User) - .HasForeignKey<ProfilePicture>(x => x.UserId); - - /* Roles */ - builder.Entity<User>() - .HasMany(x => x.Roles) - .WithMany(x => x.Users); - - /* Languages */ - builder.Entity<User>() - .HasMany(x => x.Languages) - .WithMany(x => x.Users) - .UsingEntity(x => x.ToTable("LanguageUser")); - - builder.Entity<Language>() - .HasMany(x => x.Users) - .WithMany(x => x.Languages) - .UsingEntity(x => x.ToTable("LanguageUser")); - - /* Technologies */ - builder.Entity<User>() - .HasMany(x => x.Technologies) - .WithMany(x => x.Users) - .UsingEntity(x => x.ToTable("TechnologyUser")); - - builder.Entity<Technology>() - .HasMany(x => x.Users) - .WithMany(x => x.Technologies) - .UsingEntity(x => x.ToTable("TechnologyUser")); - - /* Post */ - builder.Entity<Post>() - .HasOne(x => x.Creator) - .WithMany(x => x.Posts); - - builder.Entity<Post>() - .HasMany(x => x.Comments) - .WithOne(x => x.Post); - - /* Post attachments */ - builder.Entity<PostAttachments>() - .HasOne(x => x.Post) - .WithMany(x => x.Attachments); - - /* Comment */ - builder.Entity<Comment>() - .HasOne(x => x.Post) - .WithMany(x => x.Comments); - - builder.Entity<Comment>() - .HasOne(x => x.Creator) - .WithMany(x => x.Comments); - - /* Rating */ - builder.Entity<Rating>() - .HasKey(x => x.Id); - - builder.Entity<Rating>() - .HasOne(x => x.Post) - .WithOne(x => x.Rating) - .HasForeignKey<Rating>(x => x.PostId); - - builder.Entity<Post>() - .HasOne(x => x.Rating) - .WithOne(x => x.Post); - - /* User Rated Posts */ - builder.Entity<RatedPost>() - .HasKey(x => new { x.UserId, x.PostId }); - - builder.Entity<RatedPost>() - .HasOne(x => x.User) - .WithMany(x => x.RatedPosts); - - builder.Entity<RatedPost>() - .HasOne(x => x.Post); - - builder.Entity<User>() - .HasMany(x => x.RatedPosts); - - base.OnModelCreating(builder); - } - } -} |
