예제 #1
0
        /// <summary>
        /// Obtengo tareas.
        /// </summary>
        private void ObtengoTareas()
        {
            // Inicio carga de datos
            InitCarga();

            // Lista tareas
            tareas = null;

            // Elimino tareas SQLite
            SQLiteManager.Connection().DeleteTareas();

            // Obtengo datos servidor
            RestManager.Connection().GetData((int)URIS.TareasNuevas, new string[] { "1972-01-01 00:00:01" }, null, (arg) =>
            {
                // Compruebo datos
                if (!string.IsNullOrWhiteSpace(arg))
                {
                    // JSON
                    if (!arg.Equals("[]"))
                    {
                        // Leo JSON
                        tareas = JSONManager.DeserializeTareas(arg);

                        // Recorro tareas
                        foreach (Tarea t in tareas)
                        {
                            // Obtengo datos
                            InvokeOnMainThread(() =>
                            {
                                // Datos direccion
                                t.GetDireccionData();

                                // Guardo tarea
                                SQLiteManager.Connection().SetTarea(t);
                            });
                        }
                    }
                }

                InvokeOnMainThread(() =>
                {
                    // Obtengo tareas SQLite
                    tareas = SQLiteManager.Connection().GetTareas();

                    // Obtengo datos
                    if (tareas != null)
                    {
                        // Recorro tareas
                        foreach (Tarea t in tareas)
                        {
                            // Obtiene direccion
                            t.GetDireccionData();

                            // Obtiene usuario
                            t.GetUserCompletada();
                        }
                    }

                    // Cargo tabla
                    table.Source = new Lista_Tareas_TableSource(this);
                    table.ReloadData();

                    // Compruebo si no hay tareas
                    if (tareas == null)
                    {
                        // Creo alerta
                        UIAlertController alert = UIAlertController.Create("Sin datos", "No existen tareas", UIAlertControllerStyle.Alert);

                        // Añado accion
                        alert.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null));

                        // Muestro alerta
                        PresentViewController(alert, true, null);
                    }

                    // Detengo titulo carga
                    FlagCarga = false;
                });
            });
        }