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();
        }
示例#2
0
        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);
        }
示例#3
0
        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);
            }
        }