public ActionResult PagSeguro() { log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); log.Debug("-------------------------------PagSeguro"); Sacola sacola = (Sacola)HttpContext.Session["sacola"]; Usuario usuario = (Usuario)HttpContext.Session["usuario"]; Pedido pedido = (Pedido)HttpContext.Session["pedido"]; string code = ""; if (pedido == null) { pedido = new Pedido(); long ultimoId = PedidoBO.ObterUltimoId(); pedido.Id = long.Parse(PreencherId(ultimoId.ToString())); } try { //var url = "https://ws.pagseguro.uol.com.br/v2/checkout"; var url = "https://ws.sandbox.pagseguro.uol.com.br/v2/checkout"; var content = ""; content += "[email protected]"; //content += "[email protected]"; // content += "&token=a88fbdb1-2df5-45dc-af24-c7f64e303653b58a0b24483fb536ac84be8b536da9d9f8b9-10a6-4177-a75c-5ae7e249ad1c"; content += "&token=5269A70FB9FD41D3A2BDD1C305B142AE"; content += "¤cy=BRL"; content += "&reference=" + pedido.Id; string[] telefones = new string[2]; string ddd = "(31)"; string tel = "99304-7540"; string nome = usuario.Nome; string email = "*****@*****.**"; string telefone = ddd + tel; if (!String.IsNullOrWhiteSpace(telefone) && telefone.Contains(")") && telefone.Contains("-")) { telefones = telefone.Split(')'); ddd = telefones[0].Replace("(", "").Replace(")", ""); tel = telefones[1].Replace(")", "").Replace("-", ""); // content += "&reference = " + pedido.Id; content += "&senderName=" + nome; content += "&senderAreaCode=" + ddd; content += "&senderPhone=" + tel; content += "&senderEmail=" + email; content += "&shippingType=2"; content += "&shippingCost=" + sacola.Sedex.ToString("N2").Replace(",", "."); content += "&shippingAddressStreet=" + sacola.Rua; content += "&shippingAddressNumber=" + sacola.NumeroEndereco; content += "&shippingAddressDistrict=" + sacola.Bairro; content += "&shippingAddressPostalCode=" + sacola.Cep; content += "&shippingAddressCity=" + sacola.Cidade; content += "&shippingAddressState=" + sacola.Estado; content += "&shippingAddressCountry=BRA"; content = RecuperarProdutos(content, sacola.Produtos); var xmlResult = ""; var task = new Task(() => { xmlResult = RestService <String> .AccessTheWebAsync(url, content, "post").Result; }); task.Start(); task.Wait(); if (!string.IsNullOrEmpty(xmlResult)) { var _doc = XDocument.Parse(xmlResult); var hasErrors = _doc.Descendants("errors").Count() > 0; if (!hasErrors) { log.Debug("-------------------------------PagSeguro - OK - Checkout Efetuado sem erros"); log.Debug("-------------------------------Criar Pedido"); CriarPedido(usuario.Email, pedido.Id); log.Debug("-------------------------------Pedido - OK - Pedido criado sem Erros"); var checkout = _doc.Descendants("checkout"); code = checkout.FirstOrDefault().Element("code").Value; //_navegacao.NavigateTo("PagSeguroUOL", code); // PagSeguro pagseguro = new PagSeguro(); // pagseguro.Content = "https://pagseguro.uol.com.br/v2/checkout/payment.html?code=" + code; // HttpContext.Session["sacola"] = null; // return new RedirectResult(pagseguro.Content); // return View("Cart", sacola); } else { TempData["Erro"] = "Erro no Pag Seguro " + xmlResult; log.Debug("-------------------------------Pedido - NOK " + xmlResult); } } } else { // page.DisplayAlert("Erro", "Formato de telefone inválido(XX)XXXXX-XXXX.", "Ok"); TempData["Erro"] = "Erro no Web Service"; ViewBag.Ocorrencias = "Erro no Pag Seguro "; log.Debug("-------------------------------Pedido - NOK " + "Erro no Pag Seguro "); } } catch (Exception ex) { log.Debug("-------------------------------PagSeguro - NOK " + ex.ToString()); TempData["Erro"] = ex.Message; return(new RedirectResult("~/Home/Cart")); } return(new RedirectResult("~/Home/Cart?listaProduto=''&code=" + code)); }
public void SalvarSacola(Sacola s) { ContextoSingleton.Instancia.Sacolas.Add(s); ContextoSingleton.Instancia.SaveChanges(); }
public ActionResult Pesquisa(string listaProduto, string buscar = "") { string[] palavrasBuscar = buscar.ToLower().Split(' '); PreencherSacola(listaProduto); Sacola sacola = (Sacola)HttpContext.Session["sacola"]; List <Produto> listaProdutos = ProdutoBO.ListarProduto(); if (sacola == null) { sacola = new Sacola(); } sacola = this.LimparEndereco(sacola); sacola.Sedex = 0; sacola.TotalProduto = 0; foreach (SacolaProduto produto in sacola.Produtos) { sacola.TotalProduto = sacola.TotalProduto + (produto.Produto.Valor * produto.Produto.Qtde); } sacola.TotalSacola = sacola.TotalProduto; List <Produto> listaTodosProdutos = listaProdutos.ToList(); List <Produto> listaTodosProdutosFiltrados = new List <Produto>(); if (palavrasBuscar.Length > 0 && !palavrasBuscar[0].Equals("")) { foreach (Produto prod in listaTodosProdutos) { foreach (string palavraBuscar in palavrasBuscar) { if (palavraBuscar.Length > 2 && !palavraBuscar.Equals("para")) { if (prod.TemaRelacionado.Contains(palavraBuscar)) { if (!listaTodosProdutosFiltrados.Contains(prod)) { listaTodosProdutosFiltrados.Add(prod); } } } } } } else { listaTodosProdutosFiltrados.AddRange(listaTodosProdutos); } ViewBag.TotalAvulso = listaTodosProdutosFiltrados.Count; ViewBag.ListaProduto = listaTodosProdutosFiltrados; ViewBag.ListaProdutoArray = sacola.ProdutoSelecionado; ViewBag.ValorProdutoSelecionado = sacola.TotalSacola; ViewBag.ProdutosSacola = ""; ViewBag.QtdeProdutoSelecionado = sacola.Produtos.Count; HttpContext.Session["sacola"] = sacola; return(View(sacola)); }
public async Task <ActionResult> Sedex(Sacola sacola) { log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); string cep = sacola.Cep; //Recupera Endereço try { var task = await RetornaCEPAsync(sacola.Cep.Replace("-", "")); if (!String.IsNullOrEmpty(task.logradouro)) { sacola.Rua = task.logradouro; sacola.Estado = task.uf; sacola.Bairro = task.bairro; sacola.Cidade = task.localidade; var sedex = new CalcularPrecoPrazo.CalcPrecoPrazoWSSoapClient("CalcPrecoPrazoWSSoap"); decimal valorDeclarado = 0; if (sacola.TotalProduto < 20.5) { valorDeclarado = new decimal(20.5); } else { valorDeclarado = new decimal(sacola.TotalProduto); } CalcularPrecoPrazo.cResultado resposta = sedex.CalcPrecoPrazo("", "", "04014", "31035536", sacola.Cep, "0.3", 1, new decimal(30), new decimal(30), new decimal(30), new decimal(30), "N", valorDeclarado, "N"); sacola.MostrarEndereco = true; if (!sacola.Cidade.Equals("Belo Horizonte") || sacola.Cidade.Equals("Contagem") || sacola.Cidade.Equals("Betim") || sacola.Cidade.Equals("Lagoa Santa") || sacola.Cidade.Equals("Santa Luzia")) { sacola.Sedex = double.Parse(resposta.Servicos[0].Valor.Replace(",", "."), CultureInfo.InvariantCulture); if (sacola.Sedex == 0) { sacola.Sedex = 20.5; } } else { sacola.Sedex = 0; } // String[] valores = resposta.Servicos[0].Valor.Split(','); sacola.SedexFormatado = resposta.Servicos[0].Valor; // sacola.SedexFormatado = string.Format("R${0:0.00#,##}", sacola.Sedex); //sacola.SedexFormatado = sacola.Sedex.ToString().Replace(".", "").Replace(",", ""); sacola.TotalSacola = sacola.TotalProduto + sacola.Sedex; sacola.NumeroEndereco = null; } else { sacola = this.LimparEndereco(sacola); sacola.Cep = cep; TempData["Erro"] = "Cep não encontrado."; log.Debug("------------------------------ CEP - NOK " + "Cep não encontrado."); } } catch (Exception e) { TempData["Erro"] = e.ToString(); log.Debug("------------------------------ CEP - NOK " + e.ToString()); throw e; } ViewBag.QtdeProdutoSelecionado = sacola.Qtde; HttpContext.Session["sacola"] = sacola; return(new RedirectResult("~/Home/Cart")); }
public ActionResult AdicionarProduto(string codigo, string qtde, string pessoas = "0") { Sacola sacola = (Sacola)HttpContext.Session["sacola"]; Usuario usuario = (Usuario)HttpContext.Session["usuario"]; sacola.TotalProduto = 0; Produto produto = new Produto(); if (!String.IsNullOrEmpty(codigo)) { produto = ProdutoBO.ObterProduto(codigo); produto.Qtde = Int32.Parse(qtde); if (produto.ehKit) { if (pessoas == "0") { TempData["Erro"] = "Favor selecionar a quantidade de pessoas."; return(new RedirectResult("~/Home/DetalheProduto?codigo=" + codigo + "&listaProduto=")); } produto.QtdePessoas = Int32.Parse(pessoas); produto.Descricao = produto.Descricao + " - " + produto.QtdePessoas + " pessoas."; if (produto.QtdePessoas == 10) { produto.Valor = produto.Valor; } else if (produto.QtdePessoas == 20) { produto.Valor = (produto.Valor * 2) - 5; } else if (produto.QtdePessoas == 30) { produto.Valor = (produto.Valor * 3) - 10; } else if (produto.QtdePessoas == 40) { produto.Valor = (produto.Valor * 4) - 15; } else if (produto.QtdePessoas == 50) { produto.Valor = (produto.Valor * 5) - 20; } } SacolaProduto sacProd = new SacolaProduto(); sacProd.Produto = produto; sacProd.ProdutoId = produto.Id; sacProd.Sacola = sacola; sacProd.SacolaId = sacola.Id; sacola.Produtos.Add(sacProd); for (int i = 0; i < sacola.ProdutoSelecionado.Length - 1; i++) { if (sacola.ProdutoSelecionado[i].Equals(produto.Codigo)) { sacola.ProdutoSelecionado[i] = long.Parse(produto.Codigo); } } } ViewBag.QtdeProdutoSelecionado = sacola.Produtos.Count; foreach (SacolaProduto produto2 in sacola.Produtos) { sacola.TotalProduto = sacola.TotalProduto + (produto2.Produto.Valor * produto2.Produto.Qtde); sacola.TotalSacola = sacola.TotalProduto + sacola.Sedex; } HttpContext.Session["sacola"] = sacola; return(new RedirectResult("~/Home/Cart?listaProduto=")); }
public ActionResult LogarComCriar(Usuario usuario) { Sacola sacola = (Sacola)HttpContext.Session["sacola"]; HttpContext.Session["usuario"] = usuario; if (sacola == null) { sacola = new Sacola(); } ViewBag.ListaProdutoArray = new long[sacola.Produtos.Count]; ViewBag.ValorProdutoSelecionado = 0d; ViewBag.ListaProdutoArray = sacola.ProdutoSelecionado; ViewBag.ValorProdutoSelecionado = sacola.TotalSacola; ViewBag.QtdeProdutoSelecionado = sacola.Produtos.Count; try { usuario.NovoCpf = usuario.NovoCpf.Replace(".", "").Replace("-", ""); usuario.Telefone = usuario.Telefone.Replace("(", "").Replace(")", "").Replace("-", ""); if (!UsuarioBO.ExisteUsuario(usuario.NovoEmail)) { if (!ValidarInsercaoUsuario(usuario)) { TempData["Erro"] = "Campos obrigatórios não preenchidos."; return(View("Login", usuario)); } string[] nomes = usuario.Nome.Split(' '); if (nomes.Length < 2 || string.IsNullOrEmpty(nomes[1].Trim())) { TempData["Erro"] = "Nome inválido."; return(View("Login", usuario)); } if (usuario.NovaSenha.Length < 6) { TempData["Erro"] = "Senha tem que ter no mínimo 6 caracteres."; return(View("Login", usuario)); } if (usuario.NovoCpf.Length != 11) { TempData["Erro"] = "Cpf inválido."; return(View("Login", usuario)); } if (!usuario.NovaSenha.Equals(usuario.ConfirmarSenha)) { TempData["Erro"] = "Senhas não conferem."; return(View("Login", usuario)); } usuario.Cpf = usuario.NovoCpf; usuario.Email = usuario.NovoEmail; usuario.Senha = Sha1BO.RetornarSHA(usuario.NovaSenha); usuario.PrimeiroNome = usuario.Nome.Split(' ')[0]; UsuarioBO.CadastrarUsuario(usuario); HttpContext.Session["usuario"] = usuario; if (sacola != null && sacola.TipoPagamento.Equals("1")) { if (!String.IsNullOrEmpty(usuario.Email)) { return(PagSeguro()); } else { TempData["Erro"] = "Este Cep não pode efetuar compra."; return(new RedirectResult("~/Home/Cart")); } } else { TempData["Mensagem"] = "Usuário logado com sucesso."; return(new RedirectResult("~/Home/Index")); } } } catch (Exception e) { TempData["Erro"] = e.Message; } return(View("Login", usuario)); }
private void PreencherSacola(string sacolaProdutos) { Sacola sacola = (Sacola)HttpContext.Session["sacola"]; //sacola.SedexFormatado = string.Format("R${0:0.00#,##}", 0); // sacola.SedexFormatado = 0.ToString().Replace(".","").Replace(",",""); if (sacola == null) { sacola = new Sacola(); } sacola.TotalProduto = 0; if (!String.IsNullOrEmpty(sacolaProdutos) && sacolaProdutos.Contains(',')) { string[] listaProdutoArray = sacolaProdutos.Split(','); for (int i = 0; i < listaProdutoArray.Length - 1; i++) { // Primeiro Preenche os produtos da sessao e dps da requisição Produto produto = ProdutoBO.ObterProduto(listaProdutoArray[i]); if (!sacola.Produtos.Any(c => c.ProdutoId == produto.Id)) { produto.Qtde = 1; SacolaProduto sacolaProd = new SacolaProduto(); sacolaProd.Sacola = sacola; sacolaProd.SacolaId = sacola.Id; sacolaProd.Produto = produto; sacolaProd.ProdutoId = produto.Id; sacola.Produtos.Add(sacolaProd); } else { SacolaProduto sacolaProduto = sacola.Produtos.Where(c => c.Produto.Codigo.Equals(listaProdutoArray[i])).First(); produto = sacolaProduto.Produto; produto.Qtde++; } } //Retira os duplicados List <Produto> listaSemDuplicado = new List <Produto>(); foreach (SacolaProduto prod in sacola.Produtos) { if (!listaSemDuplicado.Contains(prod.Produto)) { listaSemDuplicado.Add(prod.Produto); } else { Produto produto = listaSemDuplicado.Where(c => c.Codigo.Equals(prod.Produto.Codigo)).FirstOrDefault(); produto.Qtde++; } } sacola.Produtos.Clear(); foreach (Produto produto in listaSemDuplicado) { SacolaProduto sacolaProd = new SacolaProduto(); sacolaProd.Produto = produto; sacolaProd.ProdutoId = produto.Id; sacolaProd.Sacola = sacola; sacolaProd.SacolaId = sacola.Id; sacola.Produtos.Add(sacolaProd); } //Fim do Retira duplicação foreach (SacolaProduto prod in sacola.Produtos) { sacola.TotalProduto = sacola.TotalProduto + (prod.Produto.Valor * prod.Produto.Qtde); } sacola.TotalSacola = sacola.TotalProduto + sacola.Sedex; sacola.ProdutoSelecionado = new long[(ProdutoBO.ListarProduto()).Count]; } HttpContext.Session["sacola"] = sacola; }