Пример #1
0
        private void buttonStartTimer_Click(object sender, EventArgs e)
        {
            UpdateDatabaseTimeRecord(true);
            UpdateScrollingText();

            TimeSelection dlg = new TimeSelection();

            if (dlg.ShowDialog() == DialogResult.OK)
            {
                if (dlg.m_selected == null)
                {
                    return;
                }

                buttonStopCurentTimer_Click(null, null);

                m_currentTimer = dlg.m_selected;

                string sql = DBHelper.GenerateInsertTimeRecordSQL(m_currentTimer);
                m_currentTimer.db_id = LocalSqllite.ExecSQLCommandScalar(sql);

                // Create new stopwatch.
                m_stopWatch = System.Diagnostics.Stopwatch.StartNew();

                m_isPaused = false;

                labelTimerDescription.Text = m_currentTimer.desc;

                buttonPauseTimer.Enabled = true;
            }
        }
Пример #2
0
        private void buttonEdit_Click(object sender, EventArgs e)
        {
            try
            {
                if (listViewTimers.SelectedItems.Count == 0)
                {
                    MessageBox.Show("You have not selected an item.");
                    return;
                }

                NewTimer dlg = new NewTimer();

                ListViewItem itm = listViewTimers.SelectedItems[0];

                TimerType selected = (TimerType)itm.Tag;

                dlg.m_pmoNum = selected.pmo_num;
                dlg.m_desc   = selected.desc;

                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    //itm.Text = dlg.m_pmoNum;
                    //itm.SubItems[0].Text = dlg.m_desc;

                    string sql = string.Format("UPDATE [timer_types] SET description = '{0}' where pmo_number = '{1}'", dlg.m_desc, dlg.m_pmoNum);
                    LocalSqllite.ExecSQLCommand(sql);

                    PopulateList();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Пример #3
0
        private void buttonDelete_Click(object sender, EventArgs e)
        {
            try
            {
                if (listViewTimers.SelectedItems.Count == 0)
                {
                    MessageBox.Show("You have not selected an item.");
                    return;
                }

                ListViewItem itm = listViewTimers.SelectedItems[0];

                TimerType selected = (TimerType)itm.Tag;

                DialogResult result = MessageBox.Show("Are you sure you want to REMOVE this item?", "Remove", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (result == DialogResult.Yes)
                {
                    string sql = string.Format("delete from [timer_types] where pmo_number = {0} ", selected.pmo_num);
                    LocalSqllite.ExecSQLCommand(sql);

                    PopulateList();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Пример #4
0
        private void LoadData(DateTime dateStart)
        {
            SetWeekText();

            SetupDataGridViewHeaders(dateStart);

            SetTitleText();

            dataGridView1.Rows.Clear();

            var timerList = DBHelper.GetTimerList();

            foreach (TimerType timerType in timerList)
            {
                List <string> dayTotals = new List <string>();
                foreach (string date in m_dates)
                {
                    string sql = string.Format("select  ifnull(sum(mins_accrued),0) from time_sheet where date = '{0}' and pmo_number = '{1}'", date, timerType.pmo_num);

                    string result = LocalSqllite.ExecSQLCommandScalar(sql);

                    dayTotals.Add(result);
                }

                AddToDataGridView(timerType.desc, timerType.pmo_num, dayTotals[0], dayTotals[1], dayTotals[2], dayTotals[3], dayTotals[4], dayTotals[5], dayTotals[6], Color.Black);
            }

            AddTotalsRow();

            HighlightCurrentDayColumn();
        }
Пример #5
0
        void UpdateDatabaseTimeRecord(bool bOverrideTimeCheck)
        {
            try
            {
                if (m_currentTimer == null || m_stopWatch == null)
                {
                    return;
                }

                if (bOverrideTimeCheck == false)
                {
                    TimeSpan span = DateTime.Now - m_dateTimeLastWriteToDB;

                    const int intervalTimeMins = 1;
                    if (span.TotalMinutes < intervalTimeMins)
                    {
                        labelStatus.Text = "Ready..";
                        // only update the database every 1 minue
                        return;
                    }
                }

                labelStatus.Text = "Updating database..";

                string sql = DBHelper.GenerateUpdateTimeRecordSQL(m_currentTimer, m_stopWatch.Elapsed);
                LocalSqllite.ExecSQLCommand(sql);

                m_dateTimeLastWriteToDB = DateTime.Now;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Пример #6
0
        private void SaveCmd()
        {
            try
            {
                var exists = false;
                try
                {
                    exists = MainContext.GetEntities<DTask>().Any(t => t.PeriodId == SelectedTask.Period.Id &&
                                    t.Period.ProjectId == SelectedTask.Period.Project.Id && t.Title == SelectedTask.Title && t.Id != SelectedTask.Id);
                }
                catch
                {

                }
                if (exists)
                {
                    throw new Exception("This Task is Already exists! Change title of Task!");
                }
                MainContext.SaveChanges();
                string sql = string.Format("INSERT INTO [timer_types] (pmo_number, description) VALUES ('{0}', '{1}')", SelectedTask.Id.ToString(), SelectedTask.Title);
                LocalSqllite.ExecSQLCommand(sql);
                Model.Helpers.Message.ShowComMsg("Save Complated!");
            }
            catch (Exception ex)
            {
                string msg = Helper.GetMessage(ex);
                Model.Helpers.Message.ShowErrorMsg(msg);
            }
        }
Пример #7
0
 private void buttonOK_Click(object sender, EventArgs e)
 {
     foreach (DataGridViewRow row in dataGridView1.Rows)
     {
         string sql = string.Format("UPDATE app_settings SET value = '{0}' WHERE setting = '{1}'", row.Cells[1].Value, row.Cells[0].Value);
         LocalSqllite.ExecSQLCommand(sql);
     }
 }
Пример #8
0
        string TotalMinsToFriendlyTime(double nMinsWorked)
        {
            string sqlFriendlyTime = string.Format("SELECT time({0} * 60, 'unixepoch');", nMinsWorked);

            string friendlyTime = LocalSqllite.ExecSQLCommandScalar(sqlFriendlyTime);

            return(friendlyTime);
        }
Пример #9
0
        public void UpdateTotalTimeWorkedToday()
        {
            try
            {
                string sqlMinsWorked = string.Format("select  ifnull(sum(mins_accrued),0) from time_sheet where date = '{0}'", DBHelper.DateToDBDate(DateTime.Now));

                string minsWorked = LocalSqllite.ExecSQLCommandScalar(sqlMinsWorked);

                double nMinsWorked = Convert.ToDouble(minsWorked);

                string friendlyTime = TotalMinsToFriendlyTime(nMinsWorked);

                string text = "Keep up the good work!";
                if (nMinsWorked < 60)
                {
                    // under an hour
                    text = "Ouch!! Just starting out!! Keep at it!";
                }
                if (nMinsWorked > 120)
                {
                    // over 2 hours
                    text = "Building up momentum!";
                }
                if (nMinsWorked > 240)
                {
                    // over 2 hours
                    text = "Its downhill from here!";
                }
                if (nMinsWorked > 420)
                {
                    // over 2 hours
                    text = "Almost there!!";
                }
                if (nMinsWorked > 449)
                {
                    // over 2 hours
                    text = "Youve done it!! GO HOME!";
                }
                if (nMinsWorked > 500)
                {
                    // over 2 hours
                    text = "Your a superstar!!";
                }
                if (nMinsWorked > 530)
                {
                    // over 2 hours
                    text = "Now your just showing off!!";
                }

                labelTotalTimeToday.Text = string.Format("You have worked {0} today. {1}", friendlyTime, text);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Пример #10
0
        private string TotalMinsToFriendlyTime(string totalMins)
        {
            if (totalMins == "")
            {
                totalMins = "0";
            }

            string sqlFriendlyTime = string.Format("SELECT time({0} * 60, 'unixepoch');", totalMins);

            string friendlyTime = LocalSqllite.ExecSQLCommandScalar(sqlFriendlyTime);

            return(friendlyTime);
        }
Пример #11
0
        public void UpdateScrollingText()
        {
            try
            {
                TimeSpan span = DateTime.Now - m_dateTimeUpdateTotalTimes;

                // only call this function once per minute.
                const int intervalTimeMins = 1;
                if (span.TotalMinutes < intervalTimeMins)
                {
                    return;
                }

                m_scroll.ClearTextToDisplay();

                string sqlMinsWorked = string.Format("select ifnull(sum(mins_accrued),0) from time_sheet where date = '{0}'", DBHelper.DateToDBDate(DateTime.Now));
                string minsWorked    = LocalSqllite.ExecSQLCommandScalar(sqlMinsWorked);

                string friendlyTime = TotalMinsToFriendlyTime(Convert.ToDouble(minsWorked));

                m_scroll.AddTextToDisplay(string.Format("*** Total time worked today: {0} ***", friendlyTime));

                string monday, sunday;
                if (GetWeekBeginningAndEnd(out monday, out sunday) == true)
                {
                    string sqlWeek = string.Format("select ifnull(sum(mins_accrued),0) from time_sheet where Date >= Datetime('{0}') and Date <= Datetime('{1}')", monday, sunday);
                    minsWorked = LocalSqllite.ExecSQLCommandScalar(sqlWeek);

                    friendlyTime = TotalMinsToFriendlyTime(Convert.ToDouble(minsWorked));
                    m_scroll.AddTextToDisplay(string.Format("*** Total time worked this week: {0} ***", friendlyTime));
                }

                // SELECT date('now','start of month') -- Get Start date of the month
                // SELECT date('now','start of month','+1 month','-1 day'); -- Get End date of month
                string sqlMinsWorkedMonth = "select ifnull(sum(mins_accrued),0) from time_sheet WHERE Date >= date('now','start of month') AND Date <= date('now','start of month','+1 month','-1 day');";
                string minsWorkedMonth    = LocalSqllite.ExecSQLCommandScalar(sqlMinsWorkedMonth);

                friendlyTime = TotalMinsToFriendlyTime(Convert.ToDouble(minsWorkedMonth));
                m_scroll.AddTextToDisplay(string.Format("*** Total time worked this month: {0} ***", friendlyTime));

                m_dateTimeUpdateTotalTimes = DateTime.Now;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Пример #12
0
        private void Form1_Load(object sender, EventArgs e)
        {
            SetWindowTitle();
            SetTodayText();

            LocalSqllite.CreateNewSQLLiteDatabase();

            UpdateTotalTimeWorkedToday();
            StartTimer();

            buttonPauseTimer.Enabled = false;

            m_scroll = new ScrollingMarqueeText();
            m_scroll.StartScrollingText(this, labelScrollText, "    ");

            UpdateScrollingText();
        }
Пример #13
0
        private void buttonAdd_Click(object sender, EventArgs e)
        {
            try
            {
                NewTimer dlg = new NewTimer();
                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    ListViewItem item = new ListViewItem();
                    item.Text = dlg.m_pmoNum;
                    item.SubItems.Add(dlg.m_desc);

                    listViewTimers.Items.Add(item);

                    string sql = string.Format("INSERT INTO [timer_types] (pmo_number, description) VALUES ('{0}', '{1}')", dlg.m_pmoNum, dlg.m_desc);
                    LocalSqllite.ExecSQLCommand(sql);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Пример #14
0
        private void AddTotalsRow()
        {
            try
            {
                // Add a totals row.
                List <string> dayTotals = new List <string>();
                foreach (string date in m_dates)
                {
                    string sql = string.Format("select  ifnull(sum(mins_accrued),0) from time_sheet where date = '{0}'", date);

                    string result = LocalSqllite.ExecSQLCommandScalar(sql);

                    dayTotals.Add(result);
                }

                // Add a totals row.
                AddToDataGridView("TOTAL", "N/A", dayTotals[0], dayTotals[1], dayTotals[2], dayTotals[3], dayTotals[4], dayTotals[5], dayTotals[6], Color.Red);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Пример #15
0
        private void buttonOK_Click(object sender, EventArgs e)
        {
            try
            {
                if (textBoxPMONumber.Text == "")
                {
                    this.DialogResult = System.Windows.Forms.DialogResult.None;
                    MessageBox.Show("Please Select Time Tracker");
                    return;
                }

                StringBuilder sb = new StringBuilder();
                if (m_mode == Mode.AddMode)
                {
                    // insert statement
                    sb.AppendLine("INSERT INTO time_sheet ( date, work_start_time, work_end_time, pmo_number, mins_accrued ) VALUES ( ");
                    sb.AppendLine(string.Format("'{0}'", textBoxDate.Text));
                    sb.AppendLine(string.Format(",'{0}'", textBoxWorkStartDate.Text));
                    sb.AppendLine(string.Format(",'{0}'", textBoxWorkEndTime.Text));
                    sb.AppendLine(string.Format(",'{0}'", textBoxPMONumber.Text));
                    sb.AppendLine(string.Format(",'{0}'", textBoxTimeAccrued.Text));
                    sb.AppendLine(");");
                }

                if (m_mode == Mode.EditMode)
                {
                    // ensure dates are in the correct format to be written to the db
                    string endDate  = DBHelper.DateToDBDateTime(Convert.ToDateTime(textBoxWorkEndTime.Text));
                    string statDate = DBHelper.DateToDBDateTime(Convert.ToDateTime(textBoxWorkStartDate.Text));
                    string date     = DBHelper.DateToDBDate(Convert.ToDateTime(textBoxDate.Text));

                    // update statment
                    sb.AppendLine("UPDATE time_sheet SET ");
                    sb.AppendLine(string.Format("date = '{0}'", date));
                    sb.AppendLine(string.Format(",work_start_time = '{0}'", statDate));
                    sb.AppendLine(string.Format(",work_end_time = '{0}'", endDate));
                    sb.AppendLine(string.Format(",pmo_number = '{0}'", textBoxPMONumber.Text));
                    sb.AppendLine(string.Format(",mins_accrued = '{0}'", textBoxTimeAccrued.Text));
                    sb.AppendLine(string.Format("WHERE work_id = '{0}'", textBoxWorkId.Text));
                }

                if (m_mode == Mode.DeleteMode)
                {
                    DialogResult d = MessageBox.Show("Are you sure you want to delete this time record?", "You Sure?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                    if (d == DialogResult.No)
                    {
                        this.DialogResult = System.Windows.Forms.DialogResult.None;
                        return;
                    }

                    sb.AppendLine("DELETE FROM time_sheet");
                    sb.AppendLine(string.Format("WHERE work_id = '{0}'", textBoxWorkId.Text));
                }

                LocalSqllite.ExecSQLCommand(sb.ToString());

                MainForm.m_handle.UpdateTotalTimeWorkedToday();

                this.DialogResult = System.Windows.Forms.DialogResult.OK;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }