Exemplo n.º 1
0
        public async Task <T> SaveDetailGuia <T>(RequestDatosGuia request_guia)
        {
            try
            {
                AuthorizationRequest();

                string ContentType = "application/json";
                var    Result      = await client.PostAsync(
                    urlBase + Constants.SaveDetalleGuia,
                    new StringContent(
                        JsonConvert.SerializeObject(request_guia),
                        Encoding.UTF8,
                        ContentType
                        )
                    );

                if (Result.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    var JsonResult  = Result.Content.ReadAsStringAsync().Result;
                    var ContentResp = JsonConvert.DeserializeObject <T>(JsonResult);
                    return(ContentResp);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
            return(default(T));
        }
Exemplo n.º 2
0
 // Método general de esta clase utilizado para guardar
 // en base de datos todos los cambios que se hayan hecho en la guía
 private async Task SaveChangesAsync(bool direct = true)
 {
     // Verificamos los campos necesarios
     if (CheckInputs())
     {
         // Actualizamos el valor de algunos campos
         // en base a los entry de la página
         guiaSelected.Receives     = Entry_Receives.Text;
         guiaSelected.Receives_Doc = Entry_Identification.Text;
         guiaSelected.Updated_at   = DateTime.Now;
         // En dado caso de que haya conexión a internet
         if (CheckNetworkConnection())
         {
             // Preguntanmos al usuario si desea enviar la información a Solex
             if (!direct)
             {
                 direct = await DisplayAlert("Mensaje de Confirmación!.", "¿Desea enviar la información de la guía a Solex?", "ACEPTAR", "CANCELAR");
             }
             if (direct)
             {
                 Device.BeginInvokeOnMainThread(async() =>
                 {
                     // Fecha de registro de l estado
                     string fecha_registro_estado = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                     // Mostramos el spinner de carga
                     ActivitySpinner.IsVisible = true;
                     // Se mapean los campos necesarios para el objeto estado
                     RequestEstadoGuia request_estado = new RequestEstadoGuia
                     {
                         GuiaId            = guiaSelected.IdGuia,
                         EstadoId          = selectedEstadoGuia.IdSolex,
                         Fecha             = fecha_registro_estado,
                         Descripcion       = "Estado generado desde SolexMobile.",
                         OperadorUsuarioId = Constants.CurrentUser.IdSolex
                     };
                     // Se crea el objeto de envío a Solex
                     RequestDatosGuia request_guia = new RequestDatosGuia
                     {
                         Guia            = guiaSelected.GuiaNumero,
                         GuiaId          = guiaSelected.IdGuia,
                         RecibeNombre    = guiaSelected.Receives,
                         RecibeDocumento = guiaSelected.Receives_Doc,
                         Imagen          = guiaSelected.Imagen,
                         UsuarioId       = Constants.CurrentUser.IdSolex,
                         UsuarioLogin    = Constants.CurrentUser.Username,
                         UltimoEstado    = request_estado
                     };
                     // Obtenemos la respuesta después de consumir el servicio
                     var response_guia = await App.RestClient.SaveDetailGuia <ResponseSave>(request_guia);
                     // Verificamos el resultado de la petición
                     if (response_guia != null)
                     {
                         if (!response_guia.IsSuccess)
                         {
                             await DisplayAlert("Mensaje Informativo!", response_guia.Error, "ACEPTAR");
                         }
                         else
                         {
                             // Actualiamos el último estado de la guía
                             guiaSelected.UltimoEstadoId = selectedEstadoGuia.IdSolex;
                             // Si el estado es LLEGÓ AL PUNTO DE ENTREGA
                             if (guiaSelected.UltimoEstadoId == Constants.ESTADO_GUIA_LLEGO_PUNTO)
                             {
                                 // Asignamos la fecha de registro
                                 guiaSelected.ArrivalDate = fecha_registro_estado;
                                 // Marcamos la guía como que ya llegó al punto
                                 guiaSelected.Arrival = true;
                                 // Actualizamos el color de la fila
                                 guiaSelected.ColorButtonRow = Constants.CODIGO_COLOR_LLEGADA_PUNTO;
                                 // Mensaje informativo
                                 await DisplayAlert("Mensaje Informativo!", "La llegada al punto fue registrada correctamente.", "ACEPTAR");
                             }
                             // Si el estado es ENTREGA BLU
                             else if (guiaSelected.UltimoEstadoId == Constants.ESTADO_GUIA_ENTREGA_BLU)
                             {
                                 // Asignamos la fecha de registro
                                 guiaSelected.DeliveredDate = fecha_registro_estado;
                                 // Marcamos la guía como que ya llegó al punto
                                 guiaSelected.Delivered = true;
                                 // Marcamos la guía como controlada
                                 guiaSelected.Controlled = true;
                                 // Actualizamos el color de la fila
                                 guiaSelected.ColorButtonRow = Constants.CODIGO_COLOR_ENTREGA_BLU;
                             }
                             // Si el estado es ENTREGA PARCIAL
                             else if (guiaSelected.UltimoEstadoId == Constants.ESTADO_GUIA_ENTREGA_PARCIAL)
                             {
                                 // Asignamos la fecha de registro
                                 guiaSelected.DeliveredDate = fecha_registro_estado;
                                 // Marcamos la guía como que ya llegó al punto
                                 guiaSelected.Delivered = true;
                                 // Marcamos la guía como controlada
                                 guiaSelected.Controlled = true;
                                 // Actualizamos el color de la fila
                                 guiaSelected.ColorButtonRow = Constants.CODIGO_COLOR_NO_ENTREGADA;
                             }
                             // Si el estado es GUÍA NO ENTREGADA
                             else if (guiaSelected.UltimoEstadoId == Constants.ESTADO_GUIA_NO_ENTREGADA)
                             {
                                 // Asignamos la fecha de registro
                                 guiaSelected.DeliveredDate = null;
                                 // Marcamos la guía como que ya llegó al punto
                                 guiaSelected.Delivered = false;
                                 // Marcamos la guía como controlada
                                 guiaSelected.Controlled = true;
                                 // Actualizamos el color de la fila
                                 guiaSelected.ColorButtonRow = Constants.CODIGO_COLOR_NO_ENTREGADA;
                             }
                             // Abrimos el listado con los datos actualizados
                             MainListOpen();
                         }
                         // Llamamos al método que guarda los cambios de la guía en BD
                         App.GuiaDatabase.SaveGuia(guiaSelected);
                         // Ocultamos el spinner de carga
                         ActivitySpinner.IsVisible = false;
                         // Verificamos que el estado sea diferente
                         // a la llegada al punto
                         if (guiaSelected.UltimoEstadoId != Constants.ESTADO_GUIA_LLEGO_PUNTO)
                         {
                             // Nos devolvemos al listado de guías
                             MainListOpen();
                         }
                     }
                     else
                     {
                         await DisplayAlert("Ocurrió un error!", "No se lograron enviar los datos al servidor.", "ACEPTAR");
                     }
                     // Ocultamos el spinner de carga
                     ActivitySpinner.IsVisible = false;
                 });
             }
         }
     }
 }