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)); } }
public ActionResult CartSummary() { var cart = CarrinhoCompras.ObterCarrinhoAtual(this.HttpContext); ViewData["CartCount"] = cart.ObterTotalItens(); return(PartialView("CartSummary")); }
protected CarrinhoCompras GetCarrinhoDaSessao() { if (Session["carrinho"] == null) { Session["carrinho"] = new CarrinhoCompras(); } return((CarrinhoCompras)Session["Carrinho"]); }
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); }
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()); } }
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)); }
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)); }
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; }
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, }); } }
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()); } }
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); }
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)); }
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; }
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); }
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)); }
// 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(); }
public async void Update(CarrinhoCompras carrinho) { _context.Update(carrinho); await _context.SaveChangesAsync(); }
public PedidosController(IPedidoRepository pedidoRepository, CarrinhoCompras carrinhoCompras) { _pedidoRepository = pedidoRepository; _carrinhoCompras = carrinhoCompras; }
public PedidoRepository(AppDbContext context, CarrinhoCompras carrinhoCompras) { _context = context; _carrinhoCompras = carrinhoCompras; }