Example #1
0
        public void SalvarStatusAlterado(List <Pedido> listaPedido, List <Pedido> listaPedidosAlterados)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
            log.Debug("-------------------------------SalvarStatusAlterado");
            foreach (Pedido pedido in listaPedido)
            {
                if (!string.IsNullOrEmpty(pedido.IdTransacao))
                {
                    if (pedido.Status == null || (!pedido.Status.Equals("7") && !pedido.Status.Equals("3")))
                    {
                        // var caminhoPagSeguro = "https://ws.pagseguro.uol.com.br/v3/transactions/" + pedido.IdTransacao+ "[email protected]&token=5269A70FB9FD41D3A2BDD1C305B142AE";
                        var caminhoPagSeguro = "https://ws.sandbox.pagseguro.uol.com.br/v3/transactions/" + pedido.IdTransacao + "[email protected]&token=5269A70FB9FD41D3A2BDD1C305B142AE";
                        var xmlResult        = "";
                        try
                        {
                            //  var task = new Task(() =>
                            // {
                            xmlResult = RestService <String> .AtualizarStatus(caminhoPagSeguro, "", "get");

                            // });
                            log.Debug("-------------------------------task Start");

                            // task.Start();
                            // task.Wait();

                            if (!string.IsNullOrEmpty(xmlResult))
                            {
                                var _doc      = XDocument.Parse(xmlResult);
                                var hasErrors = _doc.Descendants("errors").Count() > 0;

                                if (!hasErrors)
                                {
                                    XElement status = _doc.Descendants("status").FirstOrDefault();
                                    if (status != null && (pedido.Status == null || pedido.Status != null && !pedido.Status.Equals(status.Value)))
                                    {
                                        pedido.Status      = status.Value;
                                        pedido.StatusTexto = Pedido.PreencherStatus(int.Parse(pedido.Status));

                                        //ArquivoBO.GravarPedido(pedido);
                                        if (pedido.Status.Equals("3"))
                                        {
                                            pedido.ConfirmadoPagSeguro = true;
                                        }
                                        pedido.Alterado = true;
                                        listaPedidosAlterados.Add(pedido);
                                        // pedidosAlterados++;
                                    }
                                }
                                else
                                {
                                    TempData["Erro"] = "Erro no Pag Seguro " + xmlResult;
                                }
                            }
                        }catch (Exception e)
                        {
                            log.Debug("-------------------------------SalvarStatusAlterado task exception" + e.ToString());
                        }
                    }
                }
                else
                {
                    if (pedido.Status == null || !pedido.Status.Equals("7"))
                    {
                        pedido.Status      = "7";
                        pedido.StatusTexto = Pedido.PreencherStatus(int.Parse(pedido.Status));
                        //ArquivoBO.GravarPedido(pedido);
                        pedido.Alterado = true;
                        listaPedidosAlterados.Add(pedido);
                        // pedidosAlterados++;
                    }
                }
            }
            log.Debug("-------------------------------SalvarStatusAlterado Gravar Lista");
            try
            {
                PedidoBO.GravarStatusListaPedidoMesmoDia(listaPedido);
            }catch (Exception e)
            {
                log.Debug("-------------------------------Exception Gravar Lista" + e.ToString());
                throw e;
            }
        }