public ActionResult DetailsEncerrado(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PedidoFinal_usuario pedidoFinal_usuario = db.PedidoFinal_usuario.Find(id); if (pedidoFinal_usuario == null) { return(HttpNotFound()); } EnvioFornecedor envioFornecedor = db.EnvioFornecedor.Where(t => t.idPedido == pedidoFinal_usuario.idPedido).FirstOrDefault(); //dados fornecedor Produto_fornecedor prodForn = db.Produto_fornecedor.Find(pedidoFinal_usuario.Produto_fornecedor_idProduto_fornecedor); Fornecedor fornecedor = db.Fornecedor.Find(prodForn.Fornecedor_idFornecedor); String cepForn = fornecedor.CEP; //valor de custo Veiculo veiculo = db.Veiculo.Find(envioFornecedor.idVeiculo); double.TryParse(veiculo.custo_frete, out double custoPKM); //dados armazem Produto_armazem prodArm = db.Produto_armazem.Find(prodForn.idProduto_fornecedor); Armazem armazem = db.Armazem.Find(prodArm.Armazem_idArmazem); String cepArmazem = armazem.CEP; //carrega o xml CalculaFreteController calculaFrete = new CalculaFreteController(); XElement xml = calculaFrete.CalculaDistancia(cepForn, cepArmazem); String origem = string.Format("Origem: {0}", xml.Element("origin_address").Value); String destino = string.Format("Destino: {0}", xml.Element("destination_address").Value); String distancia = string.Format("Distancia: {0}", xml.Element("row").Element("element").Element("distance").Element("text").Value); String duracao = string.Format("Duração: {0}", xml.Element("row").Element("element").Element("duration").Element("text").Value); var element = xml.Element("row").Element("element").Element("distance").Element("text").Value; var result = System.Text.RegularExpressions.Regex.Split(element, " "); var distance = result[0]; double distancaeInt = Convert.ToDouble(distance); double Custo = distancaeInt * custoPKM; String custoTotal = "Frete: " + Custo.ToString(); String valores = origem + "\n" + destino + "\n" + distancia + "\n" + duracao + "\n" + custoTotal; ViewBag.DadosFrete = valores; return(View(pedidoFinal_usuario)); }
// GET: PedidoFinalUsuario/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PedidoFinal_usuario pedidoFinal_usuario = db.PedidoFinal_usuario.Find(id); if (pedidoFinal_usuario == null) { return(HttpNotFound()); } //dados fornecedor Produto_fornecedor prodForn = db.Produto_fornecedor.Find(pedidoFinal_usuario.Produto_fornecedor_idProduto_fornecedor); Fornecedor fornecedor = db.Fornecedor.Find(prodForn.Fornecedor_idFornecedor); String cepForn = fornecedor.CEP; //dados armazem Produto_armazem prodArm = db.Produto_armazem.Find(prodForn.idProduto_fornecedor); Armazem armazem = db.Armazem.Find(prodArm.Armazem_idArmazem); String cepArmazem = armazem.CEP; //carrega o xml CalculaFreteController calculaFrete = new CalculaFreteController(); XElement xml = calculaFrete.CalculaDistancia(cepForn, cepArmazem); // Formatar a resposta /* * String valores = string.Format("Origem: {0} \n Destino: {1} \n Duração da Viagem: {2} \n Distância: {3}", * //Pegar endereço de origem * xml.Element("origin_address").Value, * //Pegar endereço de destino * xml.Element("destination_address").Value, * //Pegar duração * xml.Element("row").Element("element").Element("duration").Element("text").Value, * //Pegar distância ente os dois pontos * xml.Element("row").Element("element").Element("distance").Element("text").Value * );*/ String origem = string.Format("Origem: {0}", xml.Element("origin_address").Value); String destino = string.Format("Destino: {0}", xml.Element("destination_address").Value); String distancia = string.Format("Distancia: {0}", xml.Element("row").Element("element").Element("distance").Element("text").Value); String duracao = string.Format("Duração: {0}", xml.Element("row").Element("element").Element("duration").Element("text").Value); String valores = origem + "\n" + destino + "\n" + distancia + "\n" + duracao; ViewBag.DadosFrete = valores; return(View(pedidoFinal_usuario)); }