public void cargarDetalles() { using (var detControlador = new ControladorDetalle()) { this.detalles = new ObservableCollection <Detalle>(detControlador.FindByPedido(this.tempPedido.IdPedido)); listDetalles.ItemsSource = this.detalles; } }
private async void btnEliminar_Clicked(object sender, EventArgs e) { //Si se esta eliminando un pedido ya persistido if (btnEliminar.Text == "Eliminar") { //Se confirma la eliminacion del pedido var respuesta = await DisplayAlert("Confirmar eliminacion del pedido", "¿Está seguro que desea eliminar este pedido con sus respectivos detalles?", "Si", "Cancelar"); if (respuesta) { //Se eliminan todos los detalles de ese pedido using (var detControlador = new ControladorDetalle()) { var detallesAEliminar = detControlador.FindByPedido(this.tempPedido.IdPedido); foreach (Detalle det in detallesAEliminar) { detControlador.Delete(det); } } //Se elimina el pedido en si using (var pedControlador = new ControladorPedido()) { pedControlador.Delete(this.tempPedido); } await Navigation.PopModalAsync(); } } else { //Se confirma que se quiera cancelar la creacion del pedido if (this.tempPedido.Editable) { var respuesta = await DisplayAlert("Confirmar cancelacion del pedido", "¿Está seguro que desea cancelar la creacion de ste pedido?", "Si", "Cancelar"); if (respuesta) { await Navigation.PopModalAsync(); } } else { await Navigation.PopModalAsync(); } } }
private async Task exportarPedidos() { try { //Cargar todos los pedidos editables de este vendedor List <Pedido> pedidosExportar; using (var cPedidos = new ControladorPedido()) { pedidosExportar = cPedidos.FindForExport(this.IdVendedor); } //Por cada pedido encontrado foreach (Pedido pedExportar in pedidosExportar) { //Se guardan sus detalles List <Detalle> detExportar; using (var cDetalle = new ControladorDetalle()) { detExportar = cDetalle.FindByPedido(pedExportar.IdPedido); } //Se pasan a formato JSON var pedidoJson = JsonConvert.SerializeObject(pedExportar, Newtonsoft.Json.Formatting.Indented); var detallesJson = JsonConvert.SerializeObject(detExportar, Newtonsoft.Json.Formatting.Indented); //Se crea una lista de parejas var parejas = new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>("pedido", pedidoJson), new KeyValuePair <string, string>("detalles", detallesJson) }; //Se le da formato de formulario var contenido = new FormUrlEncodedContent(parejas); //Se envia el pedido y sus detalles correspondientes al servidor HttpClient clienteHttp = new HttpClient(); clienteHttp.BaseAddress = new Uri(this.Direccion); clienteHttp.Timeout = TimeSpan.FromSeconds(30); string url = string.Format("/Importar.aspx"); HttpResponseMessage respuesta = clienteHttp.PostAsync(url, contenido).Result; if (respuesta.IsSuccessStatusCode) { //Se cambia el atributo "editable" en todos los pedidos que fueron exportados pedExportar.Editable = false; using (var pControlador = new ControladorPedido()) { pControlador.Update(pedExportar); } } } exportarIndicator.IsVisible = false; imgExportar.IsVisible = true; if (pedidosExportar.Count > 0) { await DisplayAlert("Exportacion exitosa", "Los pedidos se exportaron exitosamente", "Aceptar"); App.Current.MainPage = new Pedidos(this.IdVendedor, this.Direccion); } else { await DisplayAlert("Exportacion fallida", "No hay ningun pedido para exportar", "Aceptar"); } } catch (Exception) { exportarIndicator.IsVisible = false; imgExportar.IsVisible = true; await DisplayAlert("Error de conexión", "No se pudo enviar la informacion al sitio web. Compruebe que su conexión a internet este funcionando correctamente.", "Aceptar"); } }