using System.Text.Json; using Core.Entities; using Infrastructure.Data; using Microsoft.Extensions.Logging; namespace Infrastructure { public class StoreContextSeed { public static async Task SeedAsync(StoreContext context, ILoggerFactory loggerFactory) { try { if (!context.ProductBrands.Any()) { var brandsData = File.ReadAllText("../Infrastructure/Data/SeedData/brands.json"); var brands = JsonSerializer.Deserialize>(brandsData); foreach (var item in brands) { context.ProductBrands.Add(item); } await context.SaveChangesAsync(); } if (!context.ProductTypes.Any()) { var typesData = File.ReadAllText("../Infrastructure/Data/SeedData/types.json"); var types = JsonSerializer.Deserialize>(typesData); foreach (var item in types) { context.ProductTypes.Add(item); } await context.SaveChangesAsync(); } if (!context.Products.Any()) { var productsData = File.ReadAllText("../Infrastructure/Data/SeedData/products.json"); var products = JsonSerializer.Deserialize>(productsData); foreach (var item in products) { context.Products.Add(item); } await context.SaveChangesAsync(); } } catch (Exception ex) { var logger = loggerFactory.CreateLogger(); logger.LogError(ex.Message); } } } }