Пример #1
0
        /*
         * Solicita los datos de los partes del técnico que esta usando la aplicación
         * Manda como parametros el código y contraseña del usuario
         * Recupera un JSON con los datos
         */
        public async Task PostDatosAsync <T>(int usuario, string contraseña, string direccion) where T : class
        {
            RepositorySatApp trasfiere = new RepositorySatApp();

            try
            {
                Variables.ErrorTransDatos = 0;

                var contra = new Clases.Tecnico
                {
                    Codigo     = Convert.ToInt32(usuario),
                    Contraseña = contraseña
                };

                string contenido = JsonConvert.SerializeObject(contra);

                var content = new StringContent(contenido, Encoding.UTF8, "application/json");

                var url = Variables.ServerUrl + direccion;

                HttpResponseMessage response = await Client.PostAsync(url, content);

                if (response.IsSuccessStatusCode)
                {
                    var Datos = await response.Content.ReadAsStringAsync();

                    List <T> Tabla = JsonConvert.DeserializeObject <List <T> >(Datos);

                    trasfiere.Save <T>(Tabla);

                    response.Dispose();

                    if (direccion == "api/PrecioClienteFiltrado")
                    {
                        Variables.Cargadatos = true;
                    }
                }
            }
            catch (Exception ex)
            {
                //En caso que hubiese un error en la descarga revertimos los cambios.
                BorrarBD();
                Variables.ErrorTransDatos = 1;
                await Application.Current.MainPage.DisplayAlert("Aviso", "Error en la comunicación:" + ex.Message, "OK");
            }
        }