Esempio n. 1
0
        public ActionResult AddressAndPayment(FormCollection values)
        {
            var order = new Pedido();

            TryUpdateModel(order);

            try
            {
                if (string.Equals(values["PromoCode"], PromoCode, StringComparison.OrdinalIgnoreCase) == false)
                {
                    return(View(order));
                }
                else
                {
                    order.NomeUsuarioCliente = User.Identity.Name;
                    order.DataRegistro       = DateTime.Now;

                    db.Pedidos.Add(order);
                    db.SaveChanges();

                    var cart = CarrinhoCompras.ObterCarrinhoAtual(this.HttpContext);
                    cart.CriarPedido(order);

                    db.SaveChanges();//we have received the total amount lets update it
                    ViewBag.TotalPedido = order.Total;
                    return(RedirectToAction("Complete", new { id = order.PedidoId }));
                }
            }
            catch (Exception ex)
            {
                ex.InnerException.ToString();
                return(View(order));
            }
        }
Esempio n. 2
0
        public ActionResult CartSummary()
        {
            var cart = CarrinhoCompras.ObterCarrinhoAtual(this.HttpContext);

            ViewData["CartCount"] = cart.ObterTotalItens();
            return(PartialView("CartSummary"));
        }
Esempio n. 3
0
 protected CarrinhoCompras GetCarrinhoDaSessao()
 {
     if (Session["carrinho"] == null)
     {
         Session["carrinho"] = new CarrinhoCompras();
     }
     return((CarrinhoCompras)Session["Carrinho"]);
 }
Esempio n. 4
0
 public AccountController(UserManager <IdentityUser> userManager,
                          SignInManager <IdentityUser> signInManager,
                          CarrinhoCompras carrinhoCompra)
 {
     _userManager    = userManager;
     _signInManager  = signInManager;
     _carrinhoCompra = carrinhoCompra;
 }
        public ActionResult DeleteConfirmed(int id)
        {
            CarrinhoCompras carrinhoCompras = db.CarrinhoCompras.Find(id);

            db.CarrinhoCompras.Remove(carrinhoCompras);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public void escutaAdicaoDeProduto()
        {
            CarrinhoCompras        c    = new CarrinhoCompras();
            MockObservadorCarrinho mock = new MockObservadorCarrinho();

            c.adicionarObservador(mock);
            c.adicionaProduto(new Produto("tenis", 100));
            mock.verificaRecebimentoProduto("tenis", 100);
        }
Esempio n. 7
0
 private void AtualizarCarrinho(CarrinhoCompras carrinho, Produto produto, ItemVenda item)
 {
     carrinho.AdicionarProduto(item);
     carrinho.AtualizarValores();
     produto.SubtrairEstoque(item.Quantidade);
     _produtoRepository.Atualizar(produto);
     _carrinhoComprasRepository.Atualizar(carrinho);
     _carrinhoComprasRepository.SalvarAlteracoes();
 }
        public void totalCarrinhoTest()
        {
            CarrinhoCompras c = new CarrinhoCompras();

            c.adicionaProduto(new Produto("tenis", 100));
            c.adicionaProduto(new Produto("camiseta", 50));
            c.adicionaProduto(new Produto("bermuda", 70));
            Assert.AreEqual(220, c.total());
        }
        public async Task <ActionResult <List <CarrinhoCompras> > > CadastrarCarrinho(CarrinhoCompras carrinho)
        {
            HttpClient client      = new HttpClient();
            bool       autenticado = false;

            string json = JsonConvert.SerializeObject(new Usuario {
                Login = carrinho.LoginUsuario, Senha = carrinho.SenhaUsuario
            }, Formatting.Indented);

            var buffer = System.Text.Encoding.UTF8.GetBytes(json);

            var byteContent = new ByteArrayContent(buffer);

            byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");

            var httpResult = await client.PostAsync("https://localhost:5002/v1/usuarios", byteContent).ConfigureAwait(false);

            //se retornar com sucesso busca os dados
            if (httpResult.IsSuccessStatusCode)
            {
                autenticado = httpResult.Content.ReadAsAsync <bool>().Result;
            }

            if (autenticado)
            {
                CarrinhoCompras novoCarrinho = new CarrinhoCompras()
                {
                    Id = ((listaCarrinhos.Count() == 0) ? 1 : (listaCarrinhos.Max(l => l.Id) + 1)), IdUsuario = carrinho.IdUsuario, listaItensCarrinho = new List <ItemCarrinhoCompras>()
                };

                foreach (ItemCarrinhoCompras item in carrinho.listaItensCarrinho)
                {
                    ItemCarrinhoCompras itemCarrinho = new ItemCarrinhoCompras()
                    {
                        Id = ((listaItensCarrinhos.Count() == 0) ? 1 : (listaItensCarrinhos.Max(l => l.Id) + 1)), IdLivro = item.IdLivro, Quantidade = item.Quantidade, Valor = item.Valor, IdCarrinhoCompras = novoCarrinho.Id
                    };
                    novoCarrinho.listaItensCarrinho.Add(itemCarrinho);
                }

                listaCarrinhos.Add(novoCarrinho);

                List <CarrinhoCompras> lista = (from p in listaCarrinhos
                                                select new CarrinhoCompras
                {
                    Id = p.Id,
                    IdUsuario = p.IdUsuario,
                    listaItensCarrinho = p.listaItensCarrinho
                }).ToList();

                return(lista);
            }
            else
            {
                return(Unauthorized());
            }
        }
Esempio n. 10
0
        public ActionResult AddToCart(int id)
        {
            var addedProduct = db.Produtos.Single(product => product.ProdutoId == id);

            var cart = CarrinhoCompras.ObterCarrinhoAtual(this.HttpContext);

            cart.AdicionarNoCarrinho(addedProduct);

            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "IDCarrinhoCompras,DataAdicaoProduto,IDClienteFK")] CarrinhoCompras carrinhoCompras)
 {
     if (ModelState.IsValid)
     {
         db.Entry(carrinhoCompras).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.IDClienteFK = new SelectList(db.Clientes, "IDCliente", "Nome", carrinhoCompras.IDClienteFK);
     return(View(carrinhoCompras));
 }
Esempio n. 12
0
        public void AdicionarDoisObservadores()
        {
            CarrinhoCompras        c     = new CarrinhoCompras();
            MockObservadorCarrinho mock1 = new MockObservadorCarrinho();
            MockObservadorCarrinho mock2 = new MockObservadorCarrinho();

            c.adicionarObservador(mock1);
            c.adicionarObservador(mock2);
            c.adicionaProduto(new Produto("tenis", 100));
            mock1.verificaRecebimentoProduto("tenis", 100);
            mock2.verificaRecebimentoProduto("tenis", 100);
        }
        public ActionResult Create([Bind(Include = "ClienteFK")] CarrinhoCompras carrinhoCompras)
        {
            if (ModelState.IsValid)
            {
                db.CarrinhoCompras.Add(carrinhoCompras);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.ClienteFK = new SelectList(db.Clientes, "IDCliente", "Nome", carrinhoCompras.ClienteFK);
            return(View(carrinhoCompras));
        }
Esempio n. 14
0
 public CarrinhoComprasController(IProdutoRepository produtoRepository, CarrinhoCompras carrinhoCompras,
                                  CalcularPacote calcularPacote, WSCorreiosCalcularFrete calcularFrete,
                                  IServiceMemoryCache <List <ItemVendaViewModel> > memoryCache,
                                  CookieFrete cookieFrete)
 {
     _produtoRepository = produtoRepository;
     _carrinhoCompras   = carrinhoCompras;
     _calcularPacote    = calcularPacote;
     _wscorreios        = calcularFrete;
     _memoryCache       = memoryCache;
     _cookieFrete       = cookieFrete;
 }
Esempio n. 15
0
        public IActionResult ProdutoCarrinho([FromBody] CarrinhoCompras carrinho)
        {
            try
            {
                var context        = new postgresContext();
                var carrinhoExiste = context.CarrinhoCompras.FirstOrDefault(x => x.IdProduto == carrinho.IdProduto && x.Finalizado == false && x.IdUsuario == carrinho.IdUsuario);
                var produto        = context.Produtos.FirstOrDefault(x => x.IdProduto == carrinho.IdProduto);
                if (carrinhoExiste != null)
                {
                    carrinhoExiste.Quantidade = carrinho.Quantidade;
                    if (carrinhoExiste.Quantidade > produto.Quantidade)
                    {
                        throw new Exception($"Quantidade Máxima excedida! - Total Disponível: {produto.Quantidade}");
                    }

                    //produto.Quantidade -= carrinhoExiste.Quantidade;
                    //context.Produtos.Update(produto);
                    context.CarrinhoCompras.Update(carrinhoExiste);
                }
                else
                {
                    if (carrinho.Quantidade > produto.Quantidade)
                    {
                        throw new Exception($"Quantidade Máxima excedida! - Total Disponível: {produto.Quantidade}");
                    }

                    // produto.Quantidade -= carrinho.Quantidade;
                    //context.Produtos.Update(produto);

                    carrinho.Finalizado = false;
                    context.CarrinhoCompras.Add(carrinho);
                }
                context.SaveChanges();
                context.Dispose();

                return(new ResultWithBody
                {
                    Code = System.Net.HttpStatusCode.OK,
                    Body = "",
                });
            }
            catch (Exception ex)
            {
                Console.WriteLine("[error] ConfigController - GetFurnaces - {0} - {1}",
                                  ex.Message,
                                  ex.StackTrace.Replace(Environment.NewLine, " "));
                return(new ResultWithBody
                {
                    Code = System.Net.HttpStatusCode.InternalServerError,
                    Body = ex.Message,
                });
            }
        }
Esempio n. 16
0
        public ActionResult Index()
        {
            var cart = CarrinhoCompras.ObterCarrinhoAtual(this.HttpContext);

            var viewModel = new ShoppingCartViewModel
            {
                CartItems = cart.ObterItensCarrinho(),
                CartTotal = cart.ObterTotal()
            };

            return(View(viewModel));
        }
        public async Task <ActionResult <List <Pedido> > > CadastrarPedido(CarrinhoCompras carrinho)
        {
            HttpClient client      = new HttpClient();
            bool       autenticado = false;

            string json = JsonConvert.SerializeObject(new Usuario {
                Login = carrinho.LoginUsuario, Senha = carrinho.SenhaUsuario
            }, Formatting.Indented);

            var buffer = System.Text.Encoding.UTF8.GetBytes(json);

            var byteContent = new ByteArrayContent(buffer);

            byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");

            var httpResult = await client.PostAsync("https://localhost:5002/v1/usuarios", byteContent).ConfigureAwait(false);

            //se retornar com sucesso busca os dados
            if (httpResult.IsSuccessStatusCode)
            {
                autenticado = httpResult.Content.ReadAsAsync <bool>().Result;
            }

            if (autenticado)
            {
                Pedido novoPedido = new Pedido()
                {
                    Id = ((listaPedidos.Count() == 0) ? 1 : (listaPedidos.Max(l => l.Id) + 1)), IdUsuario = carrinho.IdUsuario, listaItensPedido = new List <ItemPedido>(), ValorTotal = (carrinho.listaItensCarrinho == null || carrinho.listaItensCarrinho.Count() == 0) ? 0 : carrinho.listaItensCarrinho.Sum(c => c.Valor * c.Quantidade)
                };

                if (carrinho.listaItensCarrinho != null && carrinho.listaItensCarrinho.Count() > 0)
                {
                    foreach (ItemCarrinhoCompras item in carrinho.listaItensCarrinho)
                    {
                        ItemPedido itemPedido = new ItemPedido()
                        {
                            Id = ((listaItensPedido.Count() == 0) ? 1 : (listaItensPedido.Max(l => l.Id) + 1)), IdLivro = item.IdLivro, Quantidade = item.Quantidade, Valor = item.Valor, IdPedido = novoPedido.Id
                        };
                        novoPedido.listaItensPedido.Add(itemPedido);
                    }
                }
                listaPedidos.Add(novoPedido);

                return(listaPedidos);
            }
            else
            {
                return(Unauthorized());
            }
        }
Esempio n. 18
0
        public void ContinuaNotificandoComErroEmObservador()
        {
            CarrinhoCompras        c     = new CarrinhoCompras();
            MockObservadorCarrinho mock1 = new MockObservadorCarrinho();
            IObservadorCarrinho    mock2 = new MockObservadorComProblema();
            MockObservadorCarrinho mock3 = new MockObservadorCarrinho();

            c.adicionarObservador(mock1);
            c.adicionarObservador(mock2);
            c.adicionarObservador(mock3);
            c.adicionaProduto(new Produto("tenis", 100));
            mock1.verificaRecebimentoProduto("tenis", 100);
            mock3.verificaRecebimentoProduto("tenis", 100);
        }
        // GET: CarrinhoCompras/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CarrinhoCompras carrinhoCompras = db.CarrinhoCompras.Find(id);

            if (carrinhoCompras == null)
            {
                return(HttpNotFound());
            }
            return(View(carrinhoCompras));
        }
        // GET: CarrinhoCompras/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CarrinhoCompras carrinhoCompras = db.CarrinhoCompras.Find(id);

            if (carrinhoCompras == null)
            {
                return(HttpNotFound());
            }
            ViewBag.IDClienteFK = new SelectList(db.Clientes, "IDCliente", "Nome", carrinhoCompras.IDClienteFK);
            return(View(carrinhoCompras));
        }
        public async Task <ActionResult <CarrinhoCompras> > GetCarrinhos(int id)
        {
            var carrinho = listaCarrinhos.Where(l => l.Id == id).FirstOrDefault();

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

            CarrinhoCompras item = new CarrinhoCompras
            {
                Id                 = carrinho.Id,
                IdUsuario          = carrinho.IdUsuario,
                listaItensCarrinho = carrinho.listaItensCarrinho
            };

            return(item);
        }
Esempio n. 22
0
        public ActionResult RemoveFromCart(int id)
        {
            var cart = CarrinhoCompras.ObterCarrinhoAtual(this.HttpContext);

            string productName = db.Carrinhos.FirstOrDefault(item => item.ProdutoId == id).Produto.Nome;

            int itemCount = cart.RemoverItemDoCarrinho(id);

            var results = new ShoppingCartRemoveViewModel
            {
                Message   = Server.HtmlEncode(productName) + " foi removido do seu carrinho de compras",
                CartTotal = cart.ObterTotal(),
                CartCount = cart.ObterTotalItens(),
                ItemCount = itemCount,
                DeleteId  = id
            };

            return(Json(results));
        }
Esempio n. 23
0
        public async Task <ActionResult <List <CarrinhoCompras> > > CadastrarCarrinho(CarrinhoCompras carrinho)
        {
            CarrinhoCompras novoCarrinho = new CarrinhoCompras()
            {
                Id = ((listaCarrinhos.Count() == 0) ? 1 : (listaCarrinhos.Max(l => l.Id) + 1)), IdUsuario = carrinho.IdUsuario, listaItensCarrinho = new List <ItemCarrinhoCompras>()
            };

            foreach (ItemCarrinhoCompras item in carrinho.listaItensCarrinho)
            {
                ItemCarrinhoCompras itemCarrinho = new ItemCarrinhoCompras()
                {
                    Id = ((listaItensCarrinhos.Count() == 0) ? 1 : (listaItensCarrinhos.Max(l => l.Id) + 1)), IdLivro = item.IdLivro, Quantidade = item.Quantidade, Valor = item.Valor, IdCarrinhoCompras = novoCarrinho.Id
                };
                novoCarrinho.listaItensCarrinho.Add(itemCarrinho);
            }

            listaCarrinhos.Add(novoCarrinho);

            return(listaCarrinhos);
        }
 public VendaController(IVendaRepository vendaRepository, CarrinhoCompras carrinhoCompras,
                        GerenciarPagarMe pagarMe,
                        PagamentoServico servico, IUsuarioRepository usuarioRepository,
                        IMarcaCartaoCreditoRepository cartaoCreditoRepository,
                        IMovimentacaoRepository movimentacaoRepository,
                        CookieFrete cookieFrete,
                        IEnderecoEntregaRepository entregaRepository,
                        ITokenService tokenService,
                        IPedidoRepository pedidoRepository)
 {
     _tokenService            = tokenService;
     _vendaRepository         = vendaRepository;
     _carrinhoCompras         = carrinhoCompras;
     _pagarMe                 = pagarMe;
     _servico                 = servico;
     _usuarioRepository       = usuarioRepository;
     _cartaoCreditoRepository = cartaoCreditoRepository;
     _movimentacaoRepository  = movimentacaoRepository;
     _cookieFrete             = cookieFrete;
     _entregaRepository       = entregaRepository;
     _pedidoRepository        = pedidoRepository;
 }
Esempio n. 25
0
        public async Task <ActionResult <List <Pedido> > > CadastrarPedido(CarrinhoCompras carrinho)
        {
            Pedido novoPedido = new Pedido()
            {
                Id = ((listaPedidos.Count() == 0) ? 1 : (listaPedidos.Max(l => l.Id) + 1)), IdUsuario = carrinho.IdUsuario, listaItensPedido = new List <ItemPedido>(), ValorTotal = (carrinho.listaItensCarrinho == null || carrinho.listaItensCarrinho.Count() == 0) ? 0 : carrinho.listaItensCarrinho.Sum(c => c.Valor * c.Quantidade)
            };

            if (carrinho.listaItensCarrinho != null && carrinho.listaItensCarrinho.Count() > 0)
            {
                foreach (ItemCarrinhoCompras item in carrinho.listaItensCarrinho)
                {
                    ItemPedido itemPedido = new ItemPedido()
                    {
                        Id = ((listaItensPedido.Count() == 0) ? 1 : (listaItensPedido.Max(l => l.Id) + 1)), IdLivro = item.IdLivro, Quantidade = item.Quantidade, Valor = item.Valor, IdPedido = novoPedido.Id
                    };
                    novoPedido.listaItensPedido.Add(itemPedido);
                }
            }
            listaPedidos.Add(novoPedido);

            return(listaPedidos);
        }
Esempio n. 26
0
        public CarrinhoComprasViewModel VerCarrinho(Guid idCliente)
        {
            var carrinhoCompras = new CarrinhoCompras();

            Guid?idCarrinho = _carrinhoComprasService.CarrinhoPorClienteId(idCliente);

            if (idCarrinho == null)
            {
                return(null);
            }

            carrinhoCompras = _carrinhoComprasService.ObterPorId(idCarrinho.Value);

            carrinhoCompras.somaValores   = carrinhoCompras.ItensCarrinho.Sum(a => a.ValorTotal);
            carrinhoCompras.ItensCarrinho = carrinhoCompras.ItensCarrinho.OrderBy(a => a.Id).ToList();

            /*  foreach (var item in carrinhoCompras.ItensCarrinho)
             * {
             *    carrinhoCompras.somaValores = carrinhoCompras.somaValores + item.ValorTotal;
             * }
             */
            return(Mapper.Map <CarrinhoComprasViewModel>(carrinhoCompras));
        }
Esempio n. 27
0
        // This method gets called by the runtime. Use this method to add services to the container.
        // Contém a lista de serviços da aplicação
        public void ConfigureServices(IServiceCollection services)
        {
            //services.AddMvc(); -- Versão 3.1

            services.AddControllersWithViews()
            // AddRazorRuntimeCompilation(): habilitar refreshing após mudanças na view
            .AddRazorRuntimeCompilation()
            // AddNewtonsoftJson(): erro de serialização no TempData "cannot serialize an object of type"
            .AddNewtonsoftJson(opt => opt.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore);

            // Pacote que implementa paginação e filtro
            services.AddPaging(options =>
            {
                options.ViewName          = "Bootstrap4";
                options.PageParameterName = "pageIndex";
            });

            services.AddDbContext <AppDbContext>(options =>
                                                 options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

            // Serviço de identity
            services.AddIdentity <IdentityUser, IdentityRole>(options =>
            {
                /* Por padrão, se não for personalizado nada, o Identity configurará um conjunto padrão de regras de validação para novas senhas:
                 *  - As senhas devem ter pelo menos 6 caracteres
                 *  - As senhas devem ter pelo menos uma letra minúscula ('a' - 'z')
                 *  - As senhas devem ter pelo menos uma letra maiúscula ('A' - 'Z')
                 *  - As senhas devem ter pelo menos um dígito ('0' - '9')
                 *  - As senhas devem ter pelo menos um caractere não alfanumérico
                 */
                options.Password.RequiredLength         = 3;
                options.Password.RequireLowercase       = false;
                options.Password.RequireUppercase       = false;
                options.Password.RequireNonAlphanumeric = false;
                options.Password.RequireDigit           = false;
            })
            // Adiciona uma implementação do EF que armazena as informações de indentidade
            .AddEntityFrameworkStores <AppDbContext>()
            // Adiciona os tokens que cuida da troca de senha e envio de email
            .AddDefaultTokenProviders();

            services.ConfigureApplicationCookie(options => options.AccessDeniedPath = "/Home/AccessDenied");
            services.Configure <ConfigurationImagens>(Configuration.GetSection("ConfigurationPastaImagens"));

            // AddTransient: não necessitamos manter estado de nada dentro dele, ou seja, a cada injeção, será uma nova instância resolvida
            services.AddTransient <ICategoriaRepository, CategoriaRepository>();
            services.AddTransient <ILancheRepository, LancheRepository>();
            services.AddTransient <IPedidoRepository, PedidoRepository>();

            // AddScoped: objeto é o mesmo dentro de um request, mas diferente através de diferentes requests
            services.AddScoped(cp => CarrinhoCompras.GetCarrinho(cp));
            services.AddScoped <RelatorioVendasService>();

            // AddSingleton: objeto será o mesmo para todas as requisições
            // HttpContextAccessor: ter acesso a sessão do contexto
            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();

            // Configuração do uso de sessão
            services.AddMemoryCache();
            services.AddSession();
        }
Esempio n. 28
0
 public async void Update(CarrinhoCompras carrinho)
 {
     _context.Update(carrinho);
     await _context.SaveChangesAsync();
 }
Esempio n. 29
0
 public PedidosController(IPedidoRepository pedidoRepository, CarrinhoCompras carrinhoCompras)
 {
     _pedidoRepository = pedidoRepository;
     _carrinhoCompras  = carrinhoCompras;
 }
Esempio n. 30
0
 public PedidoRepository(AppDbContext context, CarrinhoCompras carrinhoCompras)
 {
     _context         = context;
     _carrinhoCompras = carrinhoCompras;
 }