Пример #1
0
        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);
            }
        }
Пример #2
0
        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());
        }
Пример #3
0
        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();
            }
        }