public async Task SeedAsync(PlanItDbContext dbContext, IServiceProvider serviceProvider) { if (dbContext == null) { throw new ArgumentNullException(nameof(dbContext)); } if (serviceProvider == null) { throw new ArgumentNullException(nameof(serviceProvider)); } var logger = serviceProvider.GetService <ILoggerFactory>().CreateLogger(typeof(PlanItDbContextSeeder)); var seeders = new List <ISeeder> { new UsersSeeder(), new RolesSeeder(), new ProgressStatusesSeeder(), new SubProjectTypesSeeder(), }; foreach (var seeder in seeders) { await seeder.SeedAsync(dbContext, serviceProvider); await dbContext.SaveChangesAsync(); logger.LogInformation($"Seeder {seeder.GetType().Name} done."); } }
public async Task SeedAsync(PlanItDbContext dbContext, IServiceProvider serviceProvider) { var roleManager = serviceProvider.GetRequiredService <RoleManager <PlanItRole> >(); await SeedRoleAsync(roleManager, GlobalConstants.CompanyOwnerRoleName); await SeedRoleAsync(roleManager, GlobalConstants.AdministratorRoleName); await SeedRoleAsync(roleManager, GlobalConstants.ProjectManagerRoleName); await SeedRoleAsync(roleManager, GlobalConstants.ClientRoleName); await SeedRoleAsync(roleManager, GlobalConstants.UserRoleName); }
public async Task SeedAsync(PlanItDbContext dbContext, IServiceProvider serviceProvider) { var userManager = serviceProvider.GetRequiredService <UserManager <PlanItUser> >(); if (dbContext.Users.Count() == 1) { for (int i = 0; i < 15; i++) { await SeedUserAsync(dbContext, userManager, i); } } }
public async Task SeedAsync(PlanItDbContext dbContext, IServiceProvider serviceProvider) { if (dbContext.ProgressStatuses.Any()) { return; } await dbContext.ProgressStatuses.AddRangeAsync( new ProgressStatus { Name = GlobalConstants.ProgressStatusNotAssigned }, new ProgressStatus { Name = GlobalConstants.ProgressStatusAssigned }, new ProgressStatus { Name = GlobalConstants.ProgressStatusInProgress }, new ProgressStatus { Name = GlobalConstants.ProgressStatusCompleted }, new ProgressStatus { Name = GlobalConstants.ProgressStatusSuspended }, new ProgressStatus { Name = GlobalConstants.ProgressStatusApproving }, new ProgressStatus { Name = GlobalConstants.ProgressStatusCanceled }); }
public async Task SeedAsync(PlanItDbContext dbContext, IServiceProvider serviceProvider) { if (dbContext.SubProjectTypes.Any()) { return; } await dbContext.SubProjectTypes.AddRangeAsync( new SubProjectType { Name = "Architecture" }, new SubProjectType { Name = "Contruction" }, new SubProjectType { Name = "Electrical" }, new SubProjectType { Name = "Hvac" }, new SubProjectType { Name = "Water and Sewage" }, new SubProjectType { Name = "Geodesy" }, new SubProjectType { Name = "Geology" }, new SubProjectType { Name = "Fire Safety" }, new SubProjectType { Name = "Fire instalation" }, new SubProjectType { Name = "Landscape" }); }
private static async Task SeedUserAsync(PlanItDbContext dbContext, UserManager <PlanItUser> userManager, int i) { var user = new PlanItUser { UserName = $"loafer{i}@aaa.bg", Email = $"loafer{i}@aaa.bg", FirstName = $"Ivan{i}", MiddleName = $"Petrov{i}", LastName = $"Georgiev{i}", CompanyName = $"Project{i}X", JobTitle = $"Engineer", PhoneNumber = $"+35988797212{i}", EmailConfirmed = true, }; var isExist = dbContext.Users.Any(u => u.Email == user.Email); if (!isExist) { var result = await userManager.CreateAsync(user, $"123456-{i}"); if (result.Succeeded) { // Assign to user roles await userManager.AddToRoleAsync(user, GlobalConstants.UserRoleName); // Assign to user claims - needed for the _loginPartial string fullName = $"{user.FirstName} {user.LastName}"; await userManager.AddClaimAsync(user, new Claim("FullName", fullName)); await userManager.AddClaimAsync(user, new Claim("JobTitle", user.JobTitle)); await userManager.AddClaimAsync(user, new Claim("CompanyName", user.CompanyName)); } else { throw new Exception(string.Join(Environment.NewLine, result.Errors.Select(e => e.Description))); } } }
public EfRepository(PlanItDbContext context) { this.Context = context ?? throw new ArgumentNullException(nameof(context)); this.DbSet = this.Context.Set <TEntity>(); }
public EfDeletableEntityRepository(PlanItDbContext context) : base(context) { }