internal async Task SaveShop(ShopPostModel model) { using (var db = new SupplierbaseContext()) { var entity = await db.Shops.FirstOrDefaultAsync(p => p.Id == model.Id); if (entity == null) { entity = new Shop { Name = model.Name, }; await db.Shops.AddAsync(entity); } else { entity.Name = model.Name; db.Shops.Update(entity); } await db.SaveChangesAsync(); model.Id = entity.Id; await AddShopProducts(model); } }
public async Task <IActionResult> SaveShop([FromBody] ShopPostModel model) { var validator = new ShopValidator(); var result = await validator.ValidateAsync(model); if (!result.IsValid) { var error = string.Join(';', result.Errors); throw new Exception(error); } await _service.SaveShop(model); return(Ok()); }
private async Task AddShopProducts(ShopPostModel model) { using (var db = new SupplierbaseContext()) { var shopProducts = await db.ShopProducts.Where(s => s.ShopId == model.Id).ToListAsync(); db.RemoveRange(shopProducts); var models = model.Products.Select(productId => new ShopProduct { ShopId = model.Id, ProductId = productId, }).ToList(); await db.ShopProducts.AddRangeAsync(models); await db.SaveChangesAsync(); } }