예제 #1
0
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            VendaLoja vendaLoja = await db.VendasLojas.FindAsync(id);

            db.VendasLojas.Remove(vendaLoja);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
예제 #2
0
        // GET: VendasLojas/Details/5
        public async Task <ActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            VendaLoja vendaLoja = await db.VendasLojas.FindAsync(id);

            if (vendaLoja == null)
            {
                return(HttpNotFound());
            }

            return(View(vendaLoja));
        }
예제 #3
0
        public async Task <ActionResult> Create([Bind(Include = "VendaLojaId,LojaId,VendaLojaProdutos,Data")] VendaLoja vendaLoja)
        {
            if (ModelState.IsValid)
            {
                db.VendasLojas.Add(vendaLoja);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            ViewBag.Lojas = await db.Lojas.ToListAsync();

            ViewBag.ProdutosLojas = await db.ProdutosLojas
                                    .Include(pj => pj.Loja)
                                    .Include(pj => pj.Produto)
                                    .ToListAsync();

            return(View(vendaLoja));
        }
예제 #4
0
        // GET: VendasLojas/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            VendaLoja vendaLoja = await db.VendasLojas.FindAsync(id);

            if (vendaLoja == null)
            {
                return(HttpNotFound());
            }

            ViewBag.ProdutosLojas = await db.ProdutosLojas
                                    .Include(pj => pj.Produto)
                                    .Include(pj => pj.Loja)
                                    .Where(pj => pj.LojaId == vendaLoja.LojaId)
                                    .ToListAsync();

            return(View(vendaLoja));
        }
예제 #5
0
        public async Task <ActionResult> Edit([Bind(Include = "VendaLojaId,LojaId,Data,VendaLojaProdutos")] VendaLoja vendaLoja)
        {
            if (ModelState.IsValid)
            {
                using (var scope = new TransactionScope())
                {
                    //Produtos Apagados
                    var produtosOriginais = await db.VendasLojasProdutos
                                            .AsNoTracking()
                                            .Where(vlp => vlp.VendaLojaId == vendaLoja.VendaLojaId)
                                            .ToListAsync();

                    foreach (var produto in produtosOriginais)
                    {
                        var existe = vendaLoja.VendaLojaProdutos.Any(vlp => vlp.VendaLojaProdutoId == produto.VendaLojaProdutoId);

                        if (!existe)
                        {
                            var produtoExcluido = await db.VendasLojasProdutos
                                                  .FirstOrDefaultAsync(vlp => vlp.VendaLojaProdutoId == produto.VendaLojaProdutoId);

                            db.VendasLojasProdutos.Remove(produtoExcluido);
                        }
                    }

                    await db.SaveChangesAsync();

                    foreach (var produto in vendaLoja.VendaLojaProdutos)
                    {
                        //Produtos Editados
                        if (produto.VendaLojaProdutoId > 0)
                        {
                            db.Entry(produto).State = EntityState.Modified;
                        }
                        else
                        {
                            //Produtos Criados
                            produto.VendaLojaId = vendaLoja.VendaLojaId;
                            db.VendasLojasProdutos.Add(produto);
                        }
                    }

                    await db.SaveChangesAsync();

                    db.Entry(vendaLoja).State = EntityState.Modified;
                    await db.SaveChangesAsync();

                    scope.Complete();

                    return(RedirectToAction("Index"));
                }
            }

            ViewBag.ProdutosLojas = db.ProdutosLojas
                                    .Include(pj => pj.Produto)
                                    .Include(pj => pj.Loja)
                                    .Where(pj => pj.LojaId == vendaLoja.LojaId)
                                    .ToListAsync();


            return(View(vendaLoja));
        }