protected override async void OnHandleIntent(Android.Content.Intent intent) { db = new DbSQLite(); System.Diagnostics.Debug.WriteLine("START SERVICE"); _intent = intent; DateTime date; if (DateTime.Now.Hour > 18) { date = DateTime.Now.AddDays(1); } else { date = DateTime.Now; } string s = await Web.GetOrarioGiornaliero("IN", 1, 19, date.ToString("dd'/'MM'/'yyyy")); List <CorsoGiornaliero> lista = Web.GetSingleOrarioGiornaliero(s, 0); /* * lista dei corsi salvati. Scandisco ogni elemento della lista con la lista di tutti i corsi di giornata * se insegnamento+ora sono uguali, verifico se le Note cambiano. Se cambiano, la salvo nel database e invio la notifica * */ foreach (var l in lista) { foreach (var x in db.GetItems()) { if (l.Insegnamento == x.Insegnamento) { x. SendNotification(l); } } } // Release the wake lock provided by the BroadcastReceiver. SampleAlarmReceiver.CompleteWakefulIntent(intent); }
// public SampleSchedulingService() : base("SchedulingIntentService") // { } protected async override void OnHandleIntent(Android.Content.Intent intent) { Logcat.Write("ALARM: " + DateTime.Now.ToLongTimeString()); _db = App.Database; if (_db == null) { App.Init(new DbSQLite(new SQLite_Android().GetConnection())); _db = App.Database; // if (_db == null) // Logcat.Write ("_db ancora NULL dopo INIT"); // else // Logcat.Write ("_db NOT NULL dopo INIT"); } else { Logcat.Write("_db NOT NULL"); } Logcat.WriteDB(_db, "Allarme attivato"); Logcat.Write("NUMERO MIEI CORSI: " + _db.GetAllMieiCorsi().Count()); _intent = intent; //_listOrariGiorno = _db.GetAllOrari(); Logcat.Write("Updating Date Time"); if (DateTime.Now.Hour > Settings.UpdateHour) // && DateTime.Now.Minute > Settings.UpdateMinute) { _oggi = new DayViewModel() { Data = DateTime.Today.AddDays(1) }; _domani = new DayViewModel() { Data = _oggi.Data.AddDays(1) }; _dopodomani = new DayViewModel() { Data = _domani.Data.AddDays(1) }; } else { _oggi = new DayViewModel() { Data = DateTime.Today }; _domani = new DayViewModel() { Data = _oggi.Data.AddDays(1) }; _dopodomani = new DayViewModel() { Data = _domani.Data.AddDays(1) }; } if (!CrossConnectivity.Current.IsConnected) { //non connesso a internet Logcat.WriteDB(_db, "*************ERRORE"); Logcat.WriteDB(_db, "AGGIORNAMENTO NON RIUSCITO, nessun accesso a internet"); Logcat.Write("AGGIORNAMENTO NON RIUSCITO, nessun accesso a internet"); //var toast = DependencyService.Get<IToastNotificator>(); //await toast.Notify (ToastNotificationType.Error, "Errore", "Nessun accesso a internet", TimeSpan.FromSeconds (3)); return; } /*SYNCRONIZZAZIONE BACKGROUND * lista dei corsi salvati. Scandisco ogni elemento della lista con la lista di tutti i corsi di giornata * se insegnamento+ora sono uguali, verifico se le Note cambiano. Se cambiano, la salvo nel database e invio la notifica * */ try { for (int i = 0; i < 3; i++) { Logcat.WriteDB(_db, string.Format("Tentativo {0} - SyncAzure", i + 1)); var success = await _db.SynchronizeAzureDb(); if (!success) { Logcat.WriteDB(_db, "*************ERRORE"); Logcat.WriteDB(_db, "SINCRONIZZAZIONE AZURE NON RIUSCITA, nessun accesso a internet"); //RETRYING?? continue; //riprovo //return; } Logcat.WriteDB(_db, "---Autenticazione avvenuta con succeso!"); await updateDbOrariUtenza(); break; //se autenticazione avvenuta con successo, esco dal ciclo } } catch (Exception ex) { Logcat.WriteDB(_db, ex.Message); Logcat.Write(ex.Message); } // Release the wake lock provided by the BroadcastReceiver. SampleAlarmReceiver.CompleteWakefulIntent(intent); }