Skip to content

Commit

Permalink
[Add] added complete database schema aproaching code first
Browse files Browse the repository at this point in the history
  • Loading branch information
ghaleprachan committed Dec 16, 2020
1 parent c543fa8 commit 641c338
Show file tree
Hide file tree
Showing 33 changed files with 334 additions and 813 deletions.
Binary file modified .vs/Roofcare APIs/DesignTimeBuild/.dtbcache.v2
Binary file not shown.
Binary file modified .vs/Roofcare APIs/v16/.suo
Binary file not shown.
7 changes: 7 additions & 0 deletions Controllers/ReviewController.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Roofcare_APIs.Data;
using Roofcare_APIs.Models;
using Roofcare_APIs.Services;
using System;
using System.Collections.Generic;
Expand All @@ -23,5 +24,11 @@ public IActionResult Get(string userId)
{
return Ok(_reviewService.GetUserReview(userId));
}

[HttpPost]
public IActionResult Post(Feedback reviewModel)
{
return Ok(_reviewService.AddUserReview(reviewModel));
}
}
}
85 changes: 83 additions & 2 deletions Data/RoofCareDbContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ public RoofCareDbContext(DbContextOptions<RoofCareDbContext> options) : base(opt
{

}


public DbSet<User> Users { get; set; }
public DbSet<Booking> Bookings { get; set; }
Expand All @@ -23,7 +22,89 @@ public RoofCareDbContext(DbContextOptions<RoofCareDbContext> options) : base(opt

protected override void OnModelCreating(ModelBuilder modelBuilder)
{

modelBuilder.Entity<Feedback>()
.HasOne(f => f.FeedbackBy) //This is from feedback class
.WithMany(u => u.FeedbacksBy) // This is from user class
.IsRequired()
.HasForeignKey(f => f.FeedbackById) // This is from feedback class
.OnDelete(DeleteBehavior.ClientCascade);

modelBuilder.Entity<Feedback>()
.HasOne(f => f.FeedbackTo) //This is from feedback class
.WithMany(u => u.FeedbacksTo) // This is from user class
.IsRequired()
.HasForeignKey(f => f.FeedbackToId) // This is from feedback class
.OnDelete(DeleteBehavior.ClientCascade);

modelBuilder.Entity<Booking>()
.HasOne(b => b.BookingBy)
.WithMany(u => u.BookingsBy)
.IsRequired()
.HasForeignKey(b => b.BookingById)
.OnDelete(DeleteBehavior.ClientCascade);

modelBuilder.Entity<Booking>()
.HasOne(b => b.BookingTo)
.WithMany(u => u.BookingsTo)
.IsRequired()
.HasForeignKey(b => b.BookingToId)
.OnDelete(DeleteBehavior.ClientCascade);

modelBuilder.Entity<Favorite>()
.HasOne(f => f.UserFavBy)
.WithMany(u => u.UserFavsBy)
.IsRequired()
.HasForeignKey(f => f.UserFavById)
.OnDelete(DeleteBehavior.ClientCascade);

modelBuilder.Entity<Favorite>()
.HasOne(f => f.UserFavTo)
.WithMany(u => u.UserFavsTo)
.IsRequired()
.HasForeignKey(f => f.UserFavToId)
.OnDelete(DeleteBehavior.ClientCascade);

modelBuilder.Entity<OfferReport>()
.HasOne(o => o.User)
.WithMany(u => u.OfferReports)
.IsRequired()
.HasForeignKey(o => o.UserId)
.OnDelete(DeleteBehavior.ClientCascade);

modelBuilder.Entity<OfferReport>()
.HasOne(o => o.Offer)
.WithMany(u => u.OfferReports)
.IsRequired()
.HasForeignKey(o => o.OfferId)
.OnDelete(DeleteBehavior.ClientCascade);

modelBuilder.Entity<SavedOffer>()
.HasOne(s => s.User)
.WithMany(u => u.SavedOffers)
.IsRequired()
.HasForeignKey(s => s.UserId)
.OnDelete(DeleteBehavior.ClientCascade);

modelBuilder.Entity<SavedOffer>()
.HasOne(s => s.Offer)
.WithMany(o => o.SavedOffers)
.IsRequired()
.HasForeignKey(s => s.OfferId)
.OnDelete(DeleteBehavior.ClientCascade);

modelBuilder.Entity<UserProfession>()
.HasOne(up => up.User)
.WithMany(o => o.UserProfessions)
.IsRequired()
.HasForeignKey(s => s.UserId)
.OnDelete(DeleteBehavior.ClientCascade);

modelBuilder.Entity<UserProfession>()
.HasOne(up => up.Profession)
.WithMany(p => p.UserProfessions)
.IsRequired()
.HasForeignKey(s => s.ProfessionId)
.OnDelete(DeleteBehavior.ClientCascade);
}
}
}
Loading

0 comments on commit 641c338

Please sign in to comment.