public async Task <ResponseSave> SaveMassiveUnidades(MassiveCubic massive_cubic) { AuthorizationRequest(); ResponseSave responseSave = new ResponseSave(); try { string ContentType = "application/json"; var Result = await client.PostAsync( urlBase + Constants.EnviarMedidasMasivasCon, new StringContent( JsonConvert.SerializeObject(massive_cubic), 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); }
public bool CheckInputs() { // Envolvemos el código en un try catch para poder capturar cualquier tipo de error try { // Instanciamos el objeto de medidas massiveCubic = new MassiveCubic { Id_Guia = massiveCubic.Id_Guia, 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 = massiveCubic.Volumen, UsuarioId = Convert.ToInt16(Constants.CurrentUser.IdSolex), UsuarioLogin = Constants.CurrentUser.Username }; string TituloAlerta = "Campos vacios!"; if (App.UnidadDatabase.GetUnidadesByIdGuia(massiveCubic.Id_Guia).Count <= 0) { DisplayAlert(TituloAlerta, "No se ha pistoleado ningún código de barras", "OK"); return(false); } if (massiveCubic.Largo == 0) { DisplayAlert(TituloAlerta, "Debe digitar el largo en centímetros", "OK"); return(false); } if (massiveCubic.Alto == 0) { DisplayAlert(TituloAlerta, "Debe digitar la altura en centímetros", "OK"); return(false); } if (massiveCubic.Ancho == 0) { DisplayAlert(TituloAlerta, "Debe digitar el ancho en centímetros", "OK"); return(false); } if (massiveCubic.Peso == 0) { DisplayAlert(TituloAlerta, "Debe digitar el peso en kilos", "OK"); return(false); } if (massiveCubic.Volumen == 0) { DisplayAlert(TituloAlerta, "Debe digitar el alto, el ancho y el largo de la unidad para poder calcular su volumen", "OK"); return(false); } // Retornamos la respuesta booleana return(true); } catch (Exception er) { Debug.WriteLine(er); return(false); } }
// Función de autenticación async Task EnviarMedidasAsync(object sender, EventArgs e) { // Envolvemos el código en un try catch para poder capturar cualquier tipo de error try { // Verificamos nuevamente que haya conexión a internet CheckConnectivity(); // 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; // Consultamos las unidades leídas var unidades_leidas = App.UnidadDatabase.GetUnidadesByIdGuia(massiveCubic.Id_Guia); // Contador de posiciones int contador = 0; // Se limpia el campo massiveCubic.IdsNumeros = ""; // Variable para los números de las unidades string numeros_unidades = ""; // Asignamos las posiciones del array foreach (var unidad in unidades_leidas) { numeros_unidades += unidad.NumeroUnidad.ToString(); contador++; if (contador < unidades_leidas.Count) { numeros_unidades += ","; } } // Se llena el campo massiveCubic.IdsNumeros = numeros_unidades; // Consumimos el servicio de autenticación de Solex var result = await App.RestClient.SaveMassiveUnidades(massiveCubic); // Verificamos que el servicio haya devuelto una respuesta if (result != null) { if (result.IsSuccess) { // Iniicializamos los inputs InputsInit(); // Se limpia el objeto principal massiveCubic = new MassiveCubic(); } else { // Mostramos el error de Solex await DisplayAlert("Ocurrió un error en Solex", result.Error, "OK"); } } 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"); return; } } catch (Exception er) { Debug.WriteLine(er); await DisplayAlert("Ocurrió un error!", "No se lograron enviar las medidas.", "OK"); return; } }