Пример #1
0
        private void closeInactiveSessions()
        {
            Cstatus status = new Cstatus();

            List <String> systemPrograms = status.GetProcesses();
            //tüm takip edilenleri bul
            DataTable dbPrograms = Cprograms.getAllTracked();

            foreach (DataRow dbProgram in dbPrograms.Rows)
            {
                //eğer çalışmıyorsa
                if (!systemPrograms.Contains((String)dbProgram["exe"]))
                {
                    //açık session(ları) ı kapat
                    Csessions.close((int)dbProgram["programid"]);

                    if (!(bool)dbProgram["is_confirmed"])
                    {
                        iTimer.Enabled = false;
                        DialogResult result = MessageBox.Show(Strings.Tracking + " " + (String)dbProgram["exe"], (String)dbProgram["exe"], MessageBoxButtons.YesNo);
                        if (result == DialogResult.Yes)
                        {
                            Cprograms.track((String)dbProgram["exe"]);
                        }
                        else if (result == DialogResult.No)
                        {
                            Cprograms.hide((String)dbProgram["exe"]);
                        }
                        iTimer.Enabled = true;
                    }
                }
            }
        }
Пример #2
0
        private void updateActiveSessions()
        {
            Cstatus status = new Cstatus();

            List <String> systemPrograms = status.GetProcesses();
            DataTable     dbPrograms     = new DataTable();

            dbPrograms = Cprograms.getAll();


            //sistemdeki tüm programları gez ve bağlı olarak sessionları oluştur veya update et
            foreach (String programExe in systemPrograms)
            {
                //program kayıtlı mı kontrol et
                var rows = dbPrograms.Select("exe = '" + programExe + "'");

                //eğer veri tabanında varsa
                if (rows.Length != 0)
                {
                    //ve eğer takip ediliyorsa
                    if ((bool)rows[0]["is_tracked"])
                    {
                        int programId = (int)rows[0]["programid"];
                        //programa ait açık sessionları bul
                        DataTable sessions = Csessions.getOpen(programId);

                        //eğer session varsa
                        if (sessions.Rows.Count > 0)
                        {
                            //her açık olan her sessionı update et (normalde birden fazla satır olmaması lazım ama yinede kontrol et)
                            foreach (DataRow session in sessions.Rows)
                            {
                                Csessions.update(programId, (Properties.Settings.Default.loopTime / 1000));
                            }
                        }
                        else
                        {
                            //açık session yok
                            //session oluştur
                            Csessions.create(programId);
                        }
                    }
                }
                else //veri tabanında kaydı yok ise
                {
                    //programı kaydet ama sonra kullanıcıya sormak üzere işaretle
                    Cprograms.insert(null, programExe, true, null, 1, false);
                }
            } //end of for system programs
        }