Upgraded projects to .NET 9.0 and added new projects `KBR.Cache`, `KBR.Shared`, and `KBR.Shared.Lite` to the solution. Introduced JWT authentication and OTP handling with new models, services, and configuration options. Updated database schema with new entities `Users` and `RefreshTokens`, and added migrations for schema changes. Implemented caching strategies using `AppDistributedCache` with support for in-memory, SQL Server, and Redis. Enhanced email handling with `MailHelpers` for domain replacement. Updated controllers, repositories, and configuration files to support new features.
67 lines
2.5 KiB
C#
67 lines
2.5 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using PortBlog.API.DbContexts.Seed;
|
|
using PortBlog.API.Entities;
|
|
using PortBlog.API.Entities.Mapping;
|
|
|
|
namespace PortBlog.API.DbContexts
|
|
{
|
|
public class CvBlogContext : DbContext
|
|
{
|
|
public CvBlogContext(DbContextOptions<CvBlogContext> dbContextOptions) : base(dbContextOptions) { }
|
|
|
|
public DbSet<Candidate> Candidates { get; set; }
|
|
public DbSet<Resume> Resumes { get; set; }
|
|
|
|
public DbSet<Hobby> Hobbies { get; set; }
|
|
|
|
public DbSet<SocialLinks> SocialLinks { get; set; }
|
|
|
|
public DbSet<Academic> Academics { get; set; }
|
|
|
|
public DbSet<Experience> Experiences { get; set; }
|
|
|
|
public DbSet<ExperienceDetails> ExperienceDetails { get; set; }
|
|
|
|
public DbSet<Skill> Skills { get; set; }
|
|
|
|
public DbSet<Certification> Certifications { get; set; }
|
|
|
|
public DbSet<Message> Messages { get; set; }
|
|
|
|
public DbSet<Blog> Blogs { get; set; }
|
|
|
|
public DbSet<Post> Posts { get; set; }
|
|
|
|
public DbSet<Project> Projects { get; set; }
|
|
|
|
public DbSet<ResumeFile> Files { get; set; }
|
|
|
|
public DbSet<ClientLog> ClientLogs { get; set; }
|
|
|
|
public DbSet<Cache> Cache { get; set; }
|
|
|
|
public DbSet<RefreshToken> RefreshTokens { get; set; }
|
|
|
|
public DbSet<User> Users { get; set; }
|
|
|
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
|
{
|
|
modelBuilder.Entity<Candidate>().HasData(InitialData.GetCandidateData());
|
|
modelBuilder.Entity<Resume>().HasData(InitialData.GetResumeData());
|
|
modelBuilder.Entity<SocialLinks>().HasData(InitialData.GetSocialLinksData());
|
|
modelBuilder.Entity<Hobby>().HasData(InitialData.GetHobbyData());
|
|
modelBuilder.Entity<Academic>().HasData(InitialData.GetAcademicData());
|
|
modelBuilder.Entity<Skill>().HasData(InitialData.GetSkillData());
|
|
modelBuilder.Entity<Project>().HasData(InitialData.GetProjectData());
|
|
modelBuilder.Entity<Blog>().HasData(InitialData.GetBlogData());
|
|
modelBuilder.Entity<Post>().HasData(InitialData.GetPostsData());
|
|
modelBuilder.Entity<Experience>().HasData(InitialData.GetExperiencesData());
|
|
modelBuilder.Entity<ExperienceDetails>().HasData(InitialData.GetExperienceDetailsData());
|
|
modelBuilder.Entity<User>().HasData(InitialData.GetUsers());
|
|
modelBuilder.ApplyConfiguration(new CacheMapping());
|
|
|
|
base.OnModelCreating(modelBuilder);
|
|
}
|
|
}
|
|
}
|