Ejemplo n.º 1
0
        /*
         * Client - JS/C#/Java
         * RPC
         * Client(JS) --> Hub(C#) (C# - Cliente cadastra promo)
         * Hub(C#) --> Cliente(JS) (JS - Servidor recebe)
         */

        public async Task CadastrarPromocao(Promocao promocao)
        {
            /*
             * Notificar o usuário
             */
            await Clients.Caller.SendAsync("CadastradoSucesso");         //Notificar o Caller --> Cadastro realizado com sucesso!

            await Clients.Others.SendAsync("ReceberPromocao", promocao); //Notificar a promoção!
        }
 public Promocao Salvar(Promocao promocao)
 {
     //Analisar e identificar as entidades identificadas como adicionadas
     _context.Add(promocao);
     //persistir esses dados - salvá-los
     _context.SaveChanges();
     //retorna o objeto
     return(promocao);
 }
Ejemplo n.º 3
0
        public ActionResult DeleteConfirmed(int id)
        {
            _promotionItems.Clear();
            Promocao promotion = _db.Promocoes.Find(id);

            _db.Promocoes.Remove(promotion);
            _db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 4
0
        public static void Initialize(GenericDbContext context)
        {
            context.Database.EnsureCreated();

            var promocaoEntity = context.Set <Promocao>();

            if (promocaoEntity.Any())
            {
                return;
            }

            var light = new Promocao
            {
                Nome    = "Light",
                Lanches = new List <Lanche>
                {
                    new Lanche
                    {
                        Nome = "X-Egg"
                    }
                }
            };
            var carne = new Promocao
            {
                Nome    = "Muita carne",
                Lanches = new List <Lanche>
                {
                    new Lanche
                    {
                        Nome = "X-Burger"
                    }
                }
            };
            var queijo = new Promocao
            {
                Nome    = "Muito queijo",
                Lanches = new List <Lanche>
                {
                    new Lanche
                    {
                        Nome = "X-Bacon"
                    },
                    new Lanche
                    {
                        Nome = "X-Egg Bacon"
                    }
                }
            };

            var promocoes = new Promocao[] { light, queijo, carne };

            foreach (var p in promocoes)
            {
                promocaoEntity.Add(p);
            }
            context.SaveChanges();
        }
Ejemplo n.º 5
0
        public static void Atualizar(Promocao promocao)
        {
            using (SWDataContext contexto = new SWDataContext())
            {
                contexto.Entry(promocao).State = EntityState.Modified;

                contexto.SaveChanges();
            }
        }
Ejemplo n.º 6
0
        public void Repetir2Vezes2ProdTest()
        {
            var produto = new Produto()
            {
                Descricao = "Prod Test",
                Id        = 1,
                Valor     = 50
            };
            var produto2 = new Produto()
            {
                Descricao = "Prod Test 2",
                Id        = 2,
                Valor     = 50
            };

            var promocao = new Promocao
            {
                Id              = 1,
                Desconto        = 0,
                DescontoMaximo  = true,
                ItemDesconto    = produto,
                ItensAtivadores = new PromocaoItem[]
                {
                    new PromocaoItem {
                        Id         = 1,
                        Item       = produto,
                        Quantidade = 2
                    },
                    new PromocaoItem {
                        Id         = 2,
                        Item       = produto2,
                        Quantidade = 1
                    }
                },
                RepetirPromocao = true
            };

            var comanda = new Comanda()
            {
                Id = 1
            };

            comanda.AddItem(produto);
            comanda.AddItem(produto);
            comanda.AddItem(produto);
            comanda.AddItem(produto);
            comanda.AddItem(produto2);
            comanda.AddItem(produto2);

            var promValid = promocao.PromocaoValida(comanda);
            var repetir   = promocao.RepetirXVezes(comanda);

            Assert.True(promocao.Valid, "Promoção valida");
            Assert.True(promValid, "Promoção pode ser aplicada");
            Assert.Equal(2, repetir);
        }
Ejemplo n.º 7
0
        public void Delete_Promocao()
        {
            var promocao = new Promocao {
                IdPromocao = "Promocao 1", Descricao = "1"
            };

            var result = _mockrepository.Object.Delete(promocao);

            result.Should().Be(true, "Promocao apagado com sucesso");
        }
Ejemplo n.º 8
0
 public ActionResult Edit([Bind(Include = "ID_PROMO,TIPO_PROMO,QTD_LEVE_PROMO,QTD_PAGUE_PROMO,VLR_PAGUE,DESC_PROMO")] Promocao promocao)
 {
     if (ModelState.IsValid)
     {
         db.Entry(promocao).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(promocao));
 }
Ejemplo n.º 9
0
        public void Inserir_Novo_Promocao()
        {
            var promocao = new Promocao {
                IdPromocao = "Promocao 1", Descricao = "1"
            };

            var result = _mockrepository.Object.Insert(promocao);

            result.Should().Be(true, "Promocao inserido com sucesso");
        }
Ejemplo n.º 10
0
 public ActionResult Edit([Bind(Include = "codPromocao,nomePromocao,quantidade,preco")] Promocao promocao)
 {
     if (ModelState.IsValid)
     {
         db.Entry(promocao).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(promocao));
 }
Ejemplo n.º 11
0
 public static PromocaoVM ToViewModel(this Promocao promocao)
 {
     return(new PromocaoVM
     {
         Id = promocao.Id,
         Nome = promocao.Nome,
         Descricao = promocao.Descricao,
         DataCadastro = promocao.DataCadastro.ToString("dd/MM/yyyy")
     });
 }
Ejemplo n.º 12
0
        public void Atualizar_Promocao()
        {
            var promocao = new Promocao {
                IdPromocao = "Promocao 1", Descricao = "1"
            };

            var result = _mockrepository.Object.Update(promocao);

            result.Should().Be(true, "Promocao atualizado com sucesso");
        }
Ejemplo n.º 13
0
 public ActionResult Edit([Bind(Include = "Id,DescontoPorcentagem,DescontoQuantidade,DataPrazo,Valido,Descricao")] Promocao promocao)
 {
     if (ModelState.IsValid)
     {
         db.Entry(promocao).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(promocao));
 }
Ejemplo n.º 14
0
        private bool PromocaoExists(Promocao promocao)
        {
            bool resposta = false;

            resposta = db.Promocaos.Count(e => e.PromocaoId == e.PromocaoId) > 0;
            resposta = db.Promocaos.Count(e => e.Titulo == promocao.Titulo && e.EmpresaId == promocao.EmpresaId) > 0;


            return(resposta);
        }
Ejemplo n.º 15
0
        public ActionResult Edit(Promocao promotion, HttpPostedFileBase fileImage)
        {
            if (!string.IsNullOrEmpty(promotion.Codigo) && (_db.Promocoes.Any(c => c.Codigo == promotion.Codigo && c.Id != promotion.Id)))
            {
                ModelState.AddModelError("", "Código já cadastro, considere informar outro");
            }

            if (!ModelState.IsValid)
            {
                promotion.PromocaoItems = _promotionItems;
                LoadViewBag();
                return(View(promotion));
            }
            if (fileImage != null)
            {
                promotion.Imagem = this.SaveImage(fileImage, promotion.Imagem);
            }
            if (string.IsNullOrEmpty(promotion.Imagem))
            {
                promotion.PromocaoItems = _promotionItems;
                LoadViewBag();
                return(View(promotion));
            }

            _db.PromocaoItems.RemoveRange(_db.PromocaoItems.Where(c => c.PromocaoId == promotion.Id));

            //Se for todos itens então eu mesmo preencho a lista automáticamente.
            if (promotion.TodosItens)
            {
                var produto = (from p in _db.ProdutosMontados.Where(c => c.Publica == 1 && c.ProdutoId.HasValue && c.ProdutoTamanhoId.HasValue && c.ProdutoId.HasValue && c.TabelaPrecos.Any())
                               select new { p.Id, TabelaPreco = p.TabelaPrecos.FirstOrDefault(c => c.OptLoja == 1) }).Distinct().ToList();
                foreach (var item in produto)
                {
                    _promotionItems.Add(new PromocaoItem()
                    {
                        ProdutoMontadoId = item.Id,
                        TabelaDePrecoId  = item.TabelaPreco.Id
                    });
                }
            }

            foreach (var promotionItem in _promotionItems)
            {
                promotionItem.Id             = 0;
                promotionItem.Promocao       = null;
                promotionItem.ProdutoMontado = null;
                promotionItem.TabelaDePreco  = null;
                promotionItem.PromocaoId     = promotion.Id;
                _db.PromocaoItems.Add(promotionItem);
            }

            _db.Entry(promotion).State = EntityState.Modified;
            _db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 16
0
        public void SavePromocaoTest()
        {
            var promocaoDePascoa = new Promocao();

            promocaoDePascoa.Descricao   = "Páscoa Feliz";
            promocaoDePascoa.DataInicio  = DateTime.Now;
            promocaoDePascoa.DataTermino = DateTime.Now.AddMonths(3);
            //promocaoDePascoa.Produtos.Add(new Produto());
            //promocaoDePascoa.Produtos.Add(new Produto());
            //promocaoDePascoa.Produtos.Add(new Produto());
        }
Ejemplo n.º 17
0
 public ActionResult Edit([Bind(Include = "PromocaoID,Descricao,DiaSemana,Desconto,ProdutoID")] Promocao promocao)
 {
     if (ModelState.IsValid)
     {
         db.Entry(promocao).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.ProdutoID = new SelectList(db.Produtos, "ProdutoId", "Nome", promocao.ProdutoID);
     return(View(promocao));
 }
Ejemplo n.º 18
0
        public static void Excluir(int id)
        {
            using (SWDataContext contexto = new SWDataContext())
            {
                Promocao promocao = contexto.Promocoes.Find(id);

                contexto.Promocoes.Remove(promocao);

                contexto.SaveChanges();
            }
        }
Ejemplo n.º 19
0
        public ActionResult Create([Bind(Include = "codPromocao,nomePromocao,quantidade,preco")] Promocao promocao)
        {
            if (ModelState.IsValid)
            {
                db.Promocao.Add(promocao);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(promocao));
        }
Ejemplo n.º 20
0
        public IHttpActionResult GetPromocao(Guid id)
        {
            Promocao promocao = db.Promocaos.Find(id);

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

            return(Ok(promocao));
        }
Ejemplo n.º 21
0
        public ActionResult Create([Bind(Include = "Id,DescontoPorcentagem,DescontoQuantidade,DataPrazo,Valido,Descricao")] Promocao promocao)
        {
            if (ModelState.IsValid)
            {
                db.Promocaos.Add(promocao);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(promocao));
        }
Ejemplo n.º 22
0
        public Promocao Salvar(Promocao promocao)
        {
            //vai analisar e add todas entidades identificadas como Added
            _context.Add(promocao);

            //persistir os dados
            _context.SaveChanges();

            //retornar o objeto
            return(promocao);
        }
Ejemplo n.º 23
0
        public List <Promocao> GetAllPromocoes()
        {
            List <Promocao> promocoes_list = new List <Promocao>();


            PromocaoProdutoBusiness promocao_produto_business = new PromocaoProdutoBusiness();
            PromocaoServicoBusiness promocao_servico_business = new PromocaoServicoBusiness();

            try
            {
                this.connection.Open();

                this.command.CommandText = @"SELECT 
                                            id,
                                            descricao,
                                            porcentagem,
                                            data_inicio,
                                            data_termino,
                                            ultima_alteracao,
                                            responsavel
                                           FROM promocao";
                MySqlDataReader reader = command.ExecuteReader();

                while (reader.Read())//Enquanto existir dados no select
                {
                    Promocao promocao = new Promocao();

                    promocao.id               = (reader["id"].ToString() != null && reader["id"].ToString() != string.Empty) ? Int32.Parse(reader["id"].ToString()) : 0;
                    promocao.descricao        = (reader["descricao"].ToString() != null && reader["descricao"].ToString() != string.Empty) ? reader["descricao"].ToString() : "";
                    promocao.porcentagem      = (reader["porcentagem"].ToString() != null && reader["porcentagem"].ToString() != string.Empty) ? Int32.Parse(reader["porcentagem"].ToString()) : 0;
                    promocao.data_inicio      = (reader["data_inicio"].ToString() != null && reader["data_inicio"].ToString() != string.Empty) ? reader["data_inicio"].ToString() : "";
                    promocao.data_termino     = (reader["data_termino"].ToString() != null && reader["data_termino"].ToString() != string.Empty) ? reader["data_termino"].ToString() : "";
                    promocao.ultima_alteracao = (reader["ultima_alteracao"].ToString() != null && reader["ultima_alteracao"].ToString() != string.Empty) ? reader["ultima_alteracao"].ToString() : "";
                    promocao.responsavel      = (reader["responsavel"].ToString() != null && reader["responsavel"].ToString() != string.Empty) ? reader["responsavel"].ToString() : "";

                    promocao.promocao_produto_list = promocao_produto_business.GetPromocaoProduto(promocao.id);
                    promocao.promocao_servico_list = promocao_servico_business.GetPromocaoServico(promocao.id);

                    promocoes_list.Add(promocao);
                }


                this.connection.Close();
            }
            catch (Exception ex)
            {
                if (this.connection.State == System.Data.ConnectionState.Open)
                {
                    this.connection.Close();
                }
            }

            return(promocoes_list);
        }
Ejemplo n.º 24
0
        public ActionResult Create([Bind(Include = "ID_PROMO,TIPO_PROMO,QTD_LEVE_PROMO,QTD_PAGUE_PROMO,VLR_PAGUE,DESC_PROMO")] Promocao promocao)
        {
            if (ModelState.IsValid)
            {
                //promocao.TIPO_PROMO = (int)promocao.TipoPromocao;
                db.Promocaos.Add(promocao);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(promocao));
        }
Ejemplo n.º 25
0
 /* Busca uma promocao */
 public Promocao FindOne(int id)
 {
     try {
         context.ShowSQL(context);
         Promocao promocao = context.Promocoes.Find(id);
         context.ShowEntityState(context);
         return(promocao);
     } catch (Exception e) {
         Debug.WriteLine("FindOne error - " + e.Message);
         return(null);
     }
 }
Ejemplo n.º 26
0
 public void GravarPromocao(Promocao promocao)
 {
     if (promocao.PromocaoId == null)
     {
         context.Promocoes.Add(promocao);
     }
     else
     {
         context.Entry(promocao).State = EntityState.Modified;
     }
     context.SaveChanges();
 }
Ejemplo n.º 27
0
        public ActionResult Create(Promocao promotion, HttpPostedFileBase fileImage)
        {
            if (_db.Promocoes.Any(c => c.Codigo == promotion.Codigo))
            {
                ModelState.AddModelError("", "Código já cadastro, considere informar outro");
            }

            if (!ModelState.IsValid)
            {
                promotion.PromocaoItems = _promotionItems;
                LoadViewBag();
                return(View("Create", promotion));
            }
            promotion.Imagem = this.SaveImage(fileImage, promotion.Imagem);
            if (string.IsNullOrEmpty(promotion.Imagem) && promotion.TipoExibicao != TipoDeExibicao.CupomDesconto)
            {
                promotion.PromocaoItems = _promotionItems;
                ModelState.AddModelError("", "Imagem não informada");
                LoadViewBag();
                return(View("Create", promotion));
            }

            //Se for todos itens então eu mesmo preencho a lista automáticamente.
            if (promotion.TodosItens)
            {
                var produto = (from p in _db.ProdutosMontados.Where(c => c.Publica == 1 && c.ProdutoId.HasValue && c.ProdutoTamanhoId.HasValue && c.ProdutoId.HasValue && c.TabelaPrecos.Any())
                               select new { p.Id, TabelaPreco = p.TabelaPrecos.FirstOrDefault(c => c.OptLoja == 1) }).Distinct().ToList();
                foreach (var item in produto)
                {
                    _promotionItems.Add(new PromocaoItem()
                    {
                        ProdutoMontadoId = item.Id,
                        TabelaDePrecoId  = item.TabelaPreco.Id
                    });
                }
            }

            if (promotion.PromocaoItems == null)
            {
                promotion.PromocaoItems = new List <PromocaoItem>();
            }

            foreach (var promotionItem in _promotionItems)
            {
                promotionItem.ProdutoMontado = null;
                promotionItem.TabelaDePreco  = null;
                promotion.PromocaoItems.Add(promotionItem);
            }

            _db.Promocoes.Add(promotion);
            _db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 28
0
        public async Task <IActionResult> Create([Bind("IdPromocao,Nome,Descricao,DataInicio,DataFim,Preco,Conteudo")] Promocao promocao)
        {
            if (ModelState.IsValid)
            {
                _context.Add(promocao);
                await _context.SaveChangesAsync();

                ViewBag.Mensagem = "Promoção adicionada com sucesso.";
                return(View("Sucesso"));
            }
            return(View(promocao));
        }
Ejemplo n.º 29
0
        public async Task <IActionResult> CadastroPromocao(Promocao promocao)
        {
            var cadastroEdicaoConfirmado = await _promocao.CadastraOuAtualiza(promocao);

            if (cadastroEdicaoConfirmado == null)
            {
                Toastr(_toastrMensagem.Aviso("Registro de cadastro inválido! Verifique os campos digitados e tente novamente."));
                return(RedirectToAction("CadastroPromocao", new { promocao.Id }));
            }

            Toastr(_toastrMensagem.RegistroConfirmado());
            return(RedirectToAction("Promocoes", new { id = promocao.Id }));
        }
Ejemplo n.º 30
0
        public ActionResult Create([Bind(Include = "PromocaoID,Descricao,DiaSemana,Desconto,ProdutoID")] Promocao promocao)
        {
            if (ModelState.IsValid)
            {
                promocao.PromocaoID = Guid.NewGuid();
                db.Promocoes.Add(promocao);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.ProdutoID = new SelectList(db.Produtos, "ProdutoId", "Nome", promocao.ProdutoID);
            return(View(promocao));
        }