public Listado_Sincronizacion() { InitializeComponent(); comApi = new ComunicacionApi(); //primer linea a usar Animales = new ObservableCollection <ItemSeleccionable <Animal> >(); AnimalParaAgregar = new List <Animal>(); Lista_Item = new List <Item>(); animalvm = new AnimalVM(); }
public async Task <List <AnimalApi> > TraerListadoAnimalesApi() { List <AnimalApi> listado = new List <AnimalApi>(); try { ComunicacionApi comApi = new ComunicacionApi(); var Url = "http://localhost:8081/api/animales"; listado = await comApi.Get <List <AnimalApi> >(Url); if (listado.Count > 0) { listado = listado.Where(x => x.IdTambo == Principal.Tambo.Id_tambo).ToList(); } } catch (Exception ex) { MessageBox.Show(this, "Ocurrio un error al sincronizar " + ex.Message); } return(listado); }
private async void btnSubir_Click(object sender, EventArgs e) { try { btnGuardar.Visible = false; dataGridView1.DataSource = null; progressBar1.Style = ProgressBarStyle.Marquee; btnSincronizar.Enabled = false; btnSubir.Enabled = false; lbSincronizacion.Text = "En proceso..."; t = new System.Threading.Thread(start); t.Start(); AnimalApi_Negocio an = new AnimalApi_Negocio(); AnimalApi animal = new AnimalApi(); List <AnimalApi> listaAnimalesBase = an.RecuperarPorTambo(Principal.Tambo.Id_tambo); //La lista se llena correctamente List <AnimalApi> listadoanimalesApi = await TraerListadoAnimalesApi(); List <AnimalApi> listaResultado = new List <AnimalApi>(); List <AnimalApi> listaModificados = new List <AnimalApi>(); List <AnimalApi> listaNuevos = new List <AnimalApi>(); ComunicacionApi comApi = new ComunicacionApi(); var Url = "http://localhost:8081/api/animales"; foreach (var item in listaAnimalesBase) { animal = item; if (listadoanimalesApi.Count == 0) { Url = "http://localhost:8081/api/animales"; animal = await comApi.Post <string, AnimalApi>(Url, animal); if (!comApi.response.IsSuccessStatusCode) { MessageBox.Show(this, "No se pudo subir correctamente el registro " + item.NombreAnimal); } else { listaNuevos.Add(animal); listaResultado.Add(animal); } } else if (!listadoanimalesApi.Exists(x => x.Caravana == animal.Caravana && x.IdTambo == animal.IdTambo)) { Url = "http://localhost:8081/api/animales"; animal = await comApi.Post <string, AnimalApi>(Url, animal); if (!comApi.response.IsSuccessStatusCode) { MessageBox.Show(this, "No se pudo subir correctamente el registro " + item.NombreAnimal); } else { listaNuevos.Add(animal); listaResultado.Add(animal); } } else { if (listadoanimalesApi.Exists(a => a.Caravana == animal.Caravana && (a.FechaNacimiento != animal.FechaNacimiento || a.NombreAnimal != animal.NombreAnimal || a.EstadoAnimal != animal.EstadoAnimal))) { Url = "http://localhost:8081/api/animales/" + animal.Rp; await comApi.Put <string, AnimalApi>(Url, animal); if (!comApi.response.IsSuccessStatusCode) { MessageBox.Show(this, "No se pudo subir correctamente el registro " + item.NombreAnimal); } if (comApi.response.StatusCode == System.Net.HttpStatusCode.NoContent) { listaResultado.Add(animal); listaModificados.Add(animal); } } } } dataGridView1.DataSource = listaResultado; string nombres = ""; string mensaje = ""; if (listaModificados.Count == 0 && listaNuevos.Count == 0) { MessageBox.Show(this, "La sincronizacion se realizó correctamente. No hubo cambios "); } else if (listaNuevos.Count > 0) { nombres = ""; mensaje = "Los siguientes animales fueron dados de alta:\n"; foreach (var nuevo in listaNuevos) { nombres = nombres + nuevo.NombreAnimal + "\n"; } mensaje = mensaje + nombres; if (listaModificados.Count > 0) { mensaje = mensaje + "\n **Los registros se sincronizaron correctamente"; } MessageBox.Show(this, mensaje); } else { MessageBox.Show(this, "La sincronizacion se realizó correctamente. "); } finishProcess(); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } }