public async Task <IHttpActionResult> PutProductGroup(long id, ProductGroupDetailsDto productGroupDetails) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var ProductList = productGroupDetails.Products; List <Product> products = new List <Product>(); foreach (var i in ProductList) { var product = from pr in db.Products where pr.Id == i select pr; product.ForEach(pr => products.Add(pr)); } var productGroup = db.ProductGroups.Find(id); if (productGroup != null) { productGroup.Name = productGroupDetails.Name; } productGroup.Products.Clear(); products?.ForEach(e => productGroup.Products.Add(e)); if (id != productGroup.Id) { return(BadRequest()); } db.Set <ProductGroup>().Attach(productGroup); db.Entry(productGroup).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ProductGroupExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
/// <summary> /// Constructor that takes a context and set the DbSet to the one we are working on /// </summary> /// <param name="context"></param> public Repository(CashRegisterContext context) { Context = context; DbSet = context.Set<TEntity>(); _logger.Debug("Generic Repository instantiatet"); }