コード例 #1
0
        public async Task SeedAsync(LibraaryDbContext 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(LibraaryDbContextSeeder));

            var seeders = new List <ISeeder>
            {
                new RolesSeeder(),
                new CategoriesSeeder(),
                new UsersSeeder(),
                new AuthorsSeeder(),
                new PublishersSeeder()
            };

            foreach (var seeder in seeders)
            {
                await seeder.SeedAsync(dbContext, serviceProvider);

                await dbContext.SaveChangesAsync();

                logger.LogInformation($"Seeder {seeder.GetType().Name} done.");
            }
        }
コード例 #2
0
        public async Task SeedAsync(LibraaryDbContext dbContext, IServiceProvider serviceProvider)
        {
            var roleManager = serviceProvider.GetRequiredService <RoleManager <LibraaryRole> >();

            await SeedRoleAsync(roleManager, GlobalConstants.AdministratorRoleName);
            await SeedRoleAsync(roleManager, GlobalConstants.OwnerRoleName);
            await SeedRoleAsync(roleManager, GlobalConstants.UserRoleName);
            await SeedRoleAsync(roleManager, GlobalConstants.LibrarianRoleName);
        }
コード例 #3
0
 public BookService(LibraaryDbContext db, IAuthorService authorService, IPublisherService publisherService, IUserService userService, ICategoryService categoryService, IBlobStorageService blobStorage)
 {
     this.db               = db;
     this.authorService    = authorService;
     this.publisherService = publisherService;
     this.userService      = userService;
     this.categoryService  = categoryService;
     this.blobStorage      = blobStorage;
 }
コード例 #4
0
        public async Task SeedAsync(LibraaryDbContext dbContext, IServiceProvider serviceProvider)
        {
            var userManager = serviceProvider.GetRequiredService <UserManager <LibraaryUser> >();

            await SeedUserAsync(userManager,
                                GlobalConstants.AdministratorEmail,
                                GlobalConstants.AdministratorPassword,
                                GlobalConstants.AdministratorFirstName,
                                GlobalConstants.AdministratorLastName,
                                GlobalConstants.AdministratorRoleName);
        }
コード例 #5
0
        private static async Task SeedCategoryAsync(LibraaryDbContext context, string[] categories)
        {
            foreach (var category in categories)
            {
                if (!context.Categories.Any(c => c.CategoryName == category))
                {
                    await context.Categories.AddAsync(new Category()
                    {
                        CategoryName = category
                    });
                }
            }

            await context.SaveChangesAsync();
        }
コード例 #6
0
        private static async Task SeedCategoryAsync(LibraaryDbContext context, string[] publishers)
        {
            foreach (var publisher in publishers)
            {
                var urlAddress = publisher.Split('|')[1];
                var name       = publisher.Split('|')[0];
                if (!context.Publishers.Any(p => p.Name == name))
                {
                    await context.Publishers.AddAsync(new Publisher()
                    {
                        Name       = name,
                        URLAddress = urlAddress
                    });
                }
            }

            await context.SaveChangesAsync();
        }
コード例 #7
0
        private static async Task SeedCategoryAsync(LibraaryDbContext context, string[] authors)
        {
            foreach (var author in authors)
            {
                var firstName   = author.Split()[0];
                var lastName    = author.Split()[1];
                var nationality = author.Split()[2];

                if (!context.Authors.Any(a => a.FirstName == firstName && a.LastName == lastName))
                {
                    await context.Authors.AddAsync(new Author()
                    {
                        FirstName   = firstName,
                        LastName    = lastName,
                        Nationality = nationality
                    });
                }
            }

            await context.SaveChangesAsync();
        }
コード例 #8
0
        public async Task SeedAsync(LibraaryDbContext dbContext, IServiceProvider serviceProvider)
        {
            var context = serviceProvider.GetService(typeof(LibraaryDbContext)) as LibraaryDbContext;

            await SeedCategoryAsync(context, GlobalConstants.BookCategories);
        }
コード例 #9
0
 public LibraryService(LibraaryDbContext db, IUserService userService)
 {
     this.db          = db;
     this.userService = userService;
 }
コード例 #10
0
 public PublisherService(LibraaryDbContext db)
 {
     this.db = db;
 }
コード例 #11
0
 public UserService(LibraaryDbContext db, UserManager <LibraaryUser> userManager)
 {
     this.db          = db;
     this.userManager = userManager;
 }
コード例 #12
0
 public CategoryService(LibraaryDbContext db)
 {
     this.db = db;
 }
コード例 #13
0
 public AuthorService(LibraaryDbContext db)
 {
     this.db = db;
 }