// // Usuwa zadania i przypomnienia związane z lekarstwem o podanym Id // private void DeleteTasksAndRemindersOfMedicinId(MediboxDataContext dataContext, int medicinId) { /* * CEL: * Usuwa zadania i przypomnienia związane z lekarstwem o podanym Id * * PARAMETRY WEJŚCIOWE: * dataContext:MediboxDataContext - dataContext * medicinId - id lekarstwa */ // Wyszukaj wszystkie wystąpienia zadań dla tego lekarstwa IQueryable <MediTask> tasks = from task in dataContext.MediTasksTable where task.MedicineId == medicinId select task; // Usuń wszystkie przypomnienia związane z lekarstwem foreach (var task in tasks) { MediboxReminder.RemoveReminder(task.ReminderName); } // Usuń zadania wszystkie zadania związane z lekarstwem dataContext.MediTasksTable.DeleteAllOnSubmit <MediTask>(tasks); // Zapisz zmiany w bazie dataContext.SubmitChanges(); }
// // Usuń stare zadania // public static void OldTaskAdministrator() { /* * CEL: * Usuń stare zadania */ using (MediboxDataContext dc = new MediboxDataContext(DATA_BASE_FILE)) { // Wyszukaj nieaktualne zadania IQueryable <MediTask> oldTasks = from task in dc.MediTasksTable where task.StartDate < DateTime.Now select task; // Jeśli zadań jest więciej od 0 if (oldTasks.Count() > 0) { // Sprawdź czy dla wyszukanych zadań uruchomiono przypomnienia i usuń je foreach (var task in oldTasks) { // Sprawdź czy uruchomiono przypomnienie i usuń je if (task.IsReminder) { MediboxReminder.RemoveReminder(task.ReminderName); } } // Usuń zakończone zadania dc.MediTasksTable.DeleteAllOnSubmit <MediTask>(oldTasks); // Zapisz zmiany w bazie dc.SubmitChanges(); } } }
// // Zarządza zadaniami // public void Administrator() { /* * CEL: * Wyszukuje zakończone zadania - usuwa je wraz z przypomnieniami * Dodaje przypomnienia na kolejne 12 godzin * Odświeża kafelek - jeśli można * Odświeża informacje na ekranie blokady - jeśli można */ // Obecna data DateTime nowTime = DateTime.Now; // 12 godzin później DateTime laterTime = DateTime.Now.AddHours(8); // Koniec dnia DateTime endDay = DateTime.Today.AddHours(24); // Treść przypomnienia - pojedyńcza dawka leku //string reminderContent; // Użyj dataContext using (MediboxDataContext dc = new MediboxDataContext(MediboxDataContext.DBConnectionString)) { // // Usuń zakończone zadania // Wyszukaj zakończone zadania - których data jest mniejsza od obecnej IQueryable <MediTask> oldTasks = from task in dc.MediTasksTable where task.StartDate < DateTime.Now select task; // Jeśli zadań jest więciej od 0 if (oldTasks.Count() > 0) { // Sprawdź czy dla wyszukanych zadań uruchomiono przypomnienia i usuń je foreach (var task in oldTasks) { // Sprawdź czy uruchomiono przypomnienie i usuń je if (task.IsReminder) { MediboxReminder.RemoveReminder(task.ReminderName); } } // Usuń zakończone zadania dc.MediTasksTable.DeleteAllOnSubmit <MediTask>(oldTasks); // Zapisz zmiany w bazie dc.SubmitChanges(); } // // Dodaj przypomnienia na kolejne 8 godzin // Wyszukaj zadania z przedziału 8 godzin IQueryable <MediTask> otherTasks = from task in dc.MediTasksTable where (task.StartDate > DateTime.Now) && (task.StartDate <= laterTime) select task; // Jeśli liczba zadań jest większa od 0 if (otherTasks.Count() > 0) { // Dodaj przypomnienia dla wyszukanych zadań foreach (var task in otherTasks) { // Sprawdź czy można dodać przypomnienie i dodaj je // Przypomnienia można dodać gdy zadania w tle są uruchomione if (task.IsReminder && LetTaskAgent) { // Dodaj przypomnienie MediboxReminder.AddReminder(task.ReminderName, task.StartDate, task.MedicineName, task.ReminderContent, task.MedicineId); } } } // // Odśwież kafelek //MediboxAdministrator.TileAdministrator(dc); } //TODO: Odśwież ekran blokady }