Example #1
0
        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 += "&currency=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();
 }
Example #3
0
        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));
        }
Example #4
0
        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"));
        }
Example #5
0
        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="));
        }
Example #6
0
        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));
        }
Example #7
0
        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;
        }