Esempio n. 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();
        }
Esempio n. 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();
                }
            }
        }
Esempio n. 3
0
        //
        // Dodaje przypomnienia na kolejen 24 godziny
        //
        public static bool LongRemindersAdministrator(bool letAdd)
        {
            /*
             * CEL:
             * Dodaje przypomnienia na kolejen 24 godziny
             *
             * PARAMETRY:
             * letAdd:bool - określa czy można dodać przypomnienia. True - można dodać
             */

            try
            {
                // Sprawdź czy można dodać przypomnienia
                if (letAdd)
                {
                    // Kolejne godziny
                    const int NEXT_HOURS = 24;
                    // Użyj dataContext
                    using (MediboxDataContext dc = new MediboxDataContext(DATA_BASE_FILE))
                    {
                        // Wyszukaj zadania na kolejne godziny
                        IQueryable <MediTask> nextTasks = from ct in dc.MediTasksTable where (ct.StartDate > DateTime.Now) && (ct.StartDate <= DateTime.Now.AddHours(NEXT_HOURS)) select ct;
                        // Jeśli liczba zadań jest większa od 0
                        if (nextTasks.Count() > 0)
                        {
                            // Dodaj przypomnienia dla wyszukanych zadań
                            foreach (var ct in nextTasks)
                            {
                                // Sprawdź czy można dodać przypomnienie i dodaj je
                                if (ct.IsReminder)
                                {
                                    // Dodaj przypomnienie
                                    MediboxReminder.AddReminder(ct.ReminderName, ct.StartDate, ct.MedicineName, ct.ReminderContent, ct.MedicineId);
                                }
                            }
                        }
                    }
                    // Ustaw że dodano przypomnienia
                    //letAdd = false;
                }
            }
            catch (Exception ex)
            { }
            finally
            {
                // Ustaw że dodano przypomnienia
                letAdd = false;
            }

            // Zwróć
            return(letAdd);
        }
Esempio n. 4
0
        //
        // Dodaje przypomnienia dla kolejnych godzin
        //
        public static void ShortRemindersAdministrator(MediboxDataContext dc)
        {
            // Kolejne godziny
            const int NEXT_HOURS = 4;
            // Wyszukaj zadania na kolejne godziny
            IQueryable <MediTask> nextTasks = from ct in dc.MediTasksTable where (ct.StartDate > DateTime.Now) && (ct.StartDate <= DateTime.Now.AddHours(NEXT_HOURS)) select ct;

            // Jeśli liczba zadań jest większa od 0
            if (nextTasks.Count() > 0)
            {
                // Dodaj przypomnienia dla wyszukanych zadań
                foreach (var ct in nextTasks)
                {
                    // Sprawdź czy można dodać przypomnienie i dodaj je
                    if (ct.IsReminder)
                    {
                        // Dodaj przypomnienie
                        MediboxReminder.AddReminder(ct.ReminderName, ct.StartDate, ct.MedicineName, ct.ReminderContent, ct.MedicineId);
                    }
                }
            }
        }
Esempio n. 5
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
        }