public async Task <bool> Handle( AddStoreProductPriceCommand request, CancellationToken cancellationToken) { if (request is null) { throw new ArgumentNullException(nameof(request)); } var store = await _dbContext.Stores .FirstOrDefaultAsync(x => x.Id == request.StoreId); if (store == null) { throw new Exception($"Couldn't find any store # {request.StoreId}"); } var storeProductPrice = StoreProductPrice.Of( Guid.NewGuid(), store.Id, request.ProductId, request.Price, request.Rop, request.Eoq); await _dbContext.StoreProductPrices.AddAsync(storeProductPrice); var effectedRows = await _dbContext.SaveChangesAsync(); return(effectedRows > 0); }
protected override void OnModelCreating( ModelBuilder modelBuilder) { modelBuilder.Entity <Store>().ToTable("Store", "inv"); modelBuilder.Entity <Store>().HasKey(x => x.Id); modelBuilder.Entity <Store>().Ignore(x => x.DomainEvents); modelBuilder.Entity <StoreProductPrice>().ToTable("StoreProductPrice", "inv"); modelBuilder.Entity <StoreProductPrice>().HasKey(x => x.Id); modelBuilder.Entity <StoreProductPrice>().Ignore(x => x.DomainEvents); modelBuilder.Entity <Store>() .HasMany(x => x.StoreProductPrices) .WithOne(x => x.Store) .HasForeignKey(x => x.StoreId) .IsRequired(); // seed data var models = "Infrastructure/Persistence/SeedData/inventories.json".ReadData <List <StoreDto> >( AppContext.BaseDirectory); //Console.WriteLine(models.SerializeObject()); foreach (var inv in models) { modelBuilder.Entity <Store>().HasData( Store.Of( inv.Id.ConvertTo <Guid>(), inv.Location, inv.Description, inv.Website ) ); } var storeProducts = "Infrastructure/Persistence/SeedData/store-product-price.json" .ReadData <List <StoreProductPriceDto> >( AppContext.BaseDirectory); //Console.WriteLine(storeProducts.SerializeObject()); foreach (var sp in storeProducts) { modelBuilder.Entity <StoreProductPrice>().HasData( StoreProductPrice.Of( sp.Id.ConvertTo <Guid>(), sp.StoreId.ConvertTo <Guid>(), sp.ProductId.ConvertTo <Guid>(), sp.Price, sp.Rop, sp.Eoq ) ); } }