예제 #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
        }
예제 #3
0
        public frmMain()
        {
            //10 saniyelik timer, 10 saniye olmak zorunda
            iTimer          = new System.Timers.Timer(Properties.Settings.Default.loopTime);
            iTimer.Enabled  = true;
            iTimer.Elapsed += new ElapsedEventHandler(timeLoop);

            //bütün sessionları kapat
            Csessions.closeAll();

            //notify

            this.SizeChanged += new EventHandler(form1_sizeeventhandler);

            //localization
            //Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("tr-TR");
            //MessageBox.Show(Strings.Hello);

            InitializeComponent();
        }
예제 #4
0
        private void lstTracked_Click(object sender, EventArgs e)
        {
            lblProgramExe.Text = lstTracked.Text;
            DataRowView program = (DataRowView)lstTracked.SelectedItem;

            Double dTime      = Csessions.getTotalTime((int)program["programid"]);
            Double dTodayTime = Csessions.getTodayTotalTime((int)program["programid"]);

            int      started = Csessions.getTotalStart((int)program["programid"]);
            TimeSpan time    = TimeSpan.FromSeconds(dTime);

            lblTotalTime.Text  = time.Days.ToString() + " " + Strings.Day;
            lblTotalTime.Text += " " + time.Hours.ToString() + " " + Strings.Hour;
            lblTotalTime.Text += " " + time.Minutes.ToString() + " " + Strings.Minute;
            lblTotalTime.Text += " " + time.Seconds.ToString() + " " + Strings.Second;
            lblStarted.Text    = started.ToString();

            cmbCategory.SelectedValue = (int)program["categoryid"];
            txtTitle.Text             = program["name"].ToString().Trim();
            TimeSpan todayTime = TimeSpan.FromSeconds(dTodayTime);

            lblToday.Text = todayTime.ToString();
        }
예제 #5
0
 private void btnReset_Click(object sender, EventArgs e)
 {
     Csessions.delete((int)lstTracked.SelectedValue);
     lstTracked_Click(null, null);
 }