Exemple #1
0
        //
        // 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();
        }
Exemple #2
0
        //
        // 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();
                }
            }
        }
Exemple #3
0
        //
        // 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
        }