Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 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);
     }
 }
Exemplo n.º 3
0
        // 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;
            }
        }