private async Task importarPedidos() { //Se eliminan todos los detalles using (var cDetalle = new ControladorDetalle()) { cDetalle.DeleteAll(); } //Se eliminan todos los pedidos using (var cPedido = new ControladorPedido()) { cPedido.DeleteAll(); } //Se importan todos los pedidos HttpClient clienteHttp = new HttpClient(); clienteHttp.BaseAddress = new Uri(txtDireccionWeb.Text); string url = string.Format("/Exportar.aspx?exportar=pedidos"); var respuesta = await clienteHttp.GetAsync(url); var resultado = respuesta.Content.ReadAsStringAsync().Result; List <Pedido> pedidos = JsonConvert.DeserializeObject <List <Pedido> >(resultado); //Se importan todos los detalles url = string.Format("/Exportar.aspx?exportar=detalles"); respuesta = await clienteHttp.GetAsync(url); resultado = respuesta.Content.ReadAsStringAsync().Result; List <Detalle> detalles = JsonConvert.DeserializeObject <List <Detalle> >(resultado); //Por cada pedido foreach (Pedido pedido in pedidos) { int idPedidoSeleccionado = pedido.IdPedido; using (var cCliente = new ControladorCliente()) { var clienteCorrespondiente = cCliente.FindById(pedido.IdCliente); pedido.Cliente = clienteCorrespondiente.RazonSocial; } //Se persiste el pedido using (var cPedidos = new ControladorPedido()) { cPedidos.Insert(pedido); } //Se buscan los detalles que correspondan a ese pedido foreach (Detalle detalle in detalles) { if (detalle.IdPedido == idPedidoSeleccionado) { //Se actualiza el IdPedidoVenta en cada detalle detalle.IdPedido = pedido.IdPedido; detalle.Descuento = detalle.Descuento * 100; using (var cArticulo = new ControladorArticulo()) { var articuloCorrespondiente = cArticulo.FindById(detalle.IdArticulo); detalle.Articulo = articuloCorrespondiente.Denominacion; detalle.PrecioUnitario = articuloCorrespondiente.PrecioVenta; } //Se persiste el detalle using (var cDetalle = new ControladorDetalle()) { cDetalle.Insert(detalle); } } } } importarIndicator.IsVisible = false; imgImportar.IsVisible = true; await DisplayAlert("Descarga exitosa", "Los datos se descargaron exitosamente", "Aceptar"); }