aboutsummaryrefslogtreecommitdiff
path: root/src/DevHive.Data/DevHiveContext.cs
diff options
context:
space:
mode:
authorKamen Mladenov <kamen.d.mladenov@protonmail.com>2021-04-09 19:51:35 +0300
committerGitHub <noreply@github.com>2021-04-09 19:51:35 +0300
commit233f38915ba0079079233eff55434ef349c05c45 (patch)
tree6c5f69017865bcab87355e910c87339453da1406 /src/DevHive.Data/DevHiveContext.cs
parentf4a70c6430db923af9fa9958a11c2d6612cb52cc (diff)
parenta992357efcf1bc1ece81b95ecee5e05a0b73bfdc (diff)
downloadDevHive-0.2.tar
DevHive-0.2.tar.gz
DevHive-0.2.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.cs115
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);
- }
- }
-}