Files
rent-a-car/RentACar/Data/RentACarDbContext.cs
ani_konarcheva@abv.bg 52880aa71c commit3
2022-03-28 15:55:19 +03:00

71 lines
2.2 KiB
C#

using System;
using Data.Entities;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
namespace Data
{
public class RentACarDbContext : DbContext
{
public virtual DbSet<User> Users { get; set; }
public virtual DbSet<Car> Cars { get; set; }
public virtual DbSet<Rents> Rents { get; set; }
public RentACarDbContext()
{
}
public RentACarDbContext(DbContextOptions<RentACarDbContext> dbContextOptions) : base(dbContextOptions)
{
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
optionsBuilder.UseSqlServer("Server=.;Database=RentACarDb;Integrated Security=true;");
}
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<User>().HasData(
new User
{
Username = "user",
Password = "user",
FirstName = "User",
LastName = "User",
PersonalNumber = "0987654321",
PhoneNumber = "0882750588",
Email = "user@gmail.org",
Role = User.RoleEnum.User
}
);
modelBuilder.Entity<User>().HasData(
new User
{
Username = "manager",
Password = "manager",
FirstName = "Manager",
LastName = "Manager",
PersonalNumber = "0987654321",
PhoneNumber = "0882750588",
Email = "manager@gmail.org",
Role = User.RoleEnum.Manager
}
);
modelBuilder.Entity<User>()
.HasIndex(user => new { user.Username, user.Password })
.IsUnique(true);
modelBuilder.Entity<Rents>().HasOne(u => u.User).WithMany().HasForeignKey(p => p.User);
modelBuilder.Entity<Rents>().HasOne(c => c.Car).WithMany().HasForeignKey(c => c.Car);
}
}
}