public async Task <ResponseSave> SaveMedidasCon(ImageCubic cubic_image) { AuthorizationRequest(); ResponseSave responseSave = new ResponseSave(); try { string ContentType = "application/json"; var Result = await client.PostAsync( urlBase + Constants.EnviarMedidasCon, new StringContent( JsonConvert.SerializeObject(cubic_image), Encoding.UTF8, ContentType ) ); if (Result.IsSuccessStatusCode) { var content = await Result.Content.ReadAsStringAsync(); responseSave = JsonConvert.DeserializeObject <ResponseSave>(content); } } catch (Exception ex) { Debug.WriteLine(ex.Message); } return(responseSave); }
// Función de autenticación async Task EnviarMedidasAsync(object sender, EventArgs e) { // Verificamos nuevamente que haya conexión a internet CheckConnectivity(); // Verificamos que se encuentren llenos todos los campos if (CheckInputs()) { // Verificamos que exista conexión a internet if (Constants.hasInternet) { // Creamos un hilo de ejecución para consumir el servicio del login Device.BeginInvokeOnMainThread(async() => { // Mostramos el spinner de carga ActivitySpinner.IsVisible = true; // Instanciamos el objeto de medidas ImageCubic cubic_image = new ImageCubic { Codigo_Barras = Entry_CodeBars.Text, Alto = Convert.ToDouble(Entry_Alto.Text), Ancho = Convert.ToDouble(Entry_Ancho.Text), Largo = Convert.ToDouble(Entry_Largo.Text), Peso = Convert.ToDouble(Entry_Peso.Text), UsuarioId = Constants.CurrentUser.IdSolex }; // Consumimos el servicio de autenticación de Solex var result = await App.RestClient.SaveMedidasCon <ImageCubic>(cubic_image); // Verificamos que el servicio haya devuelto una respuesta if (result != null) { } else { // Mostramos el mensaje que devuelve Solex en caso de que algo esté mal // con el usuario que está intentando ingresar await DisplayAlert("Mensaje de Alerta", "Ocurrió un error al intentar enviar las medidas", "OK"); } // Desabilitamos el spinner de carga ActivitySpinner.IsVisible = false; }); } else { await DisplayAlert("Error de conexión!", "No se encuentra una conexión estable a internet.", "OK"); } } }
public bool CheckInputs() { // Envolvemos el código en un try catch para poder capturar cualquier tipo de error try { // Instanciamos el objeto de medidas imageCubic = new ImageCubic { Codigo_Barras = Entry_CodeBars.Text, Alto = Convert.ToDouble(Entry_Alto.Text), Ancho = Convert.ToDouble(Entry_Ancho.Text), Largo = Convert.ToDouble(Entry_Largo.Text), Peso = Convert.ToDouble(Entry_Peso.Text), PesoVolumen = Convert.ToDouble(Entry_Peso.Text), Volumen = Convert.ToDouble(Entry_Volumen.Text), Unidades = Convert.ToInt16(Entry_Unidades.Text), UsuarioId = Convert.ToInt16(Constants.CurrentUser.IdSolex), UsuarioLogin = Constants.CurrentUser.Username }; string TituloAlerta = "Campos vacios!"; if (string.IsNullOrWhiteSpace(imageCubic.Codigo_Barras)) { DisplayAlert(TituloAlerta, "Primero debe digitar el código de barras", "OK"); return(false); } if (imageCubic.Largo == 0) { DisplayAlert(TituloAlerta, "Debe digitar el largo en centímetros", "OK"); return(false); } if (imageCubic.Alto == 0) { DisplayAlert(TituloAlerta, "Debe digitar la altura en centímetros", "OK"); return(false); } if (imageCubic.Ancho == 0) { DisplayAlert(TituloAlerta, "Debe digitar el ancho en centímetros", "OK"); return(false); } if (imageCubic.Peso == 0) { DisplayAlert(TituloAlerta, "Debe digitar el peso en kilos", "OK"); return(false); } if (imageCubic.Volumen == 0) { DisplayAlert(TituloAlerta, "Debe digitar el alto, el ancho y el largo de la unidad para poder calcular su volumen", "OK"); return(false); } // Mostramos el botón de enviar a Solex ButtonsCubicacion.IsVisible = true; // Retornamos la respuesta booleana return(true); } catch (Exception er) { Debug.WriteLine(er); return(false); } }