예제 #1
0
        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));
        }
예제 #2
0
 /// <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");
 }