Exemplo n.º 1
0
        public async Task <IHttpActionResult> PostProductGroup(ProductGroupDetailsDto productGroupDetails)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var            workwrok = productGroupDetails.Products;
            List <Product> products = new List <Product>();

            foreach (var i in workwrok)
            {
                var p = from pt in db.Products where pt.Id == i select pt;
                p.ForEach(pr => products.Add(pr));
            }

            var productGroup = new ProductGroup {
                Name = productGroupDetails.Name
            };

            products?.ForEach(e => productGroup.Products.Add(e));

            db.ProductGroups.Add(productGroup);
            await db.SaveChangesAsync();

            productGroupDetails.Id = productGroup.Id;

            return(CreatedAtRoute("DefaultApi", new { id = productGroupDetails.Id }, productGroupDetails));
        }
Exemplo n.º 2
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));
        }
Exemplo n.º 3
0
        public async Task <IHttpActionResult> GetProductGroup(long id)
        {
            ProductGroup productGroup =
                await db.ProductGroups.Include(pg => pg.Products).SingleOrDefaultAsync(pg => pg.Id == id);

            if (productGroup == null)
            {
                return(NotFound());
            }

            var productGroupDetailsDto = new ProductGroupDetailsDto()
            {
                Id = productGroup.Id, Name = productGroup.Name, Products = new List <long>()
            };

            productGroup.Products.ForEach(p => productGroupDetailsDto.Products.Add(p.Id));

            return(Ok(productGroupDetailsDto));
        }