Exemplo n.º 1
0
        void dt_ProjectDeleted(object sender, TimeTrackerEvent e)
        {
            TimeTrackerDataSet.ProjectsRow row = e.ProjectEntry;
            ToolStripMenuItem menuItem         = null;

            // Modify the project menu list accordingly
            foreach (ToolStripMenuItem mi in projectMenuItems)
            {
                if (mi.Tag == row)
                {
                    menuItem = mi;
                    break;
                }
            }

            if (menuItem != null)
            {
                menuItem.Visible = false;
                projectMenuItems.Remove(menuItem);

                // If the deleted project is the current project
                if (currentProjectMenuItem == menuItem)
                {
                    // Now there is no current project
                    currentProjectMenuItem = null;
                }
            }
        }
Exemplo n.º 2
0
        void Projects_ProjectsRowDeleted(object sender, TimeTrackerDataSet.ProjectsRowChangeEvent e)
        {
            if (e.Row == _currentProjectRow)
            {
                PunchOut();
                _currentProjectRow = null;
            }

            RaiseProjectDeleted(e.Row);
        }
        public Project GetById(int id)
        {
            TimeTrackerDataSet.ProjectsRow projectsRow = _dataWrapper.Projects.SingleOrDefault(row => row.Id == id);
            if (projectsRow != null)
            {
                return(Project.Create(projectsRow.Id, projectsRow.Name, _companyRepository.GetById(projectsRow.CustomerId), projectsRow.Inactive));
            }

            return(null);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Iterates over list of time entries for a project to populate the
        /// hierarchical list.
        private TimeSpan AddProjectToList(TreeNode parent, TimeTrackerDataSet.ProjectsRow project)
        {
            TimeSpan entryTime, dayCumulative = new TimeSpan(), projectCumulative = new TimeSpan();
            TreeNode dayNode = null, entryNode;
            DateTime projectDay = DateTime.MinValue;

            foreach (TimeTrackerDataSet.TimeEntriesRow tRow in project.GetTimeEntriesRows())
            {
                // Ignore open entries
                if (tRow.IsEndTimeNull())
                {
                    continue;
                }

                // Scope for date range (not the most efficient...)
                if (tRow.StartTime.Date < startDateTimePicker.Value.Date ||
                    tRow.EndTime.Date > endDateTimePicker.Value.Date)
                {
                    continue;
                }

                // See if date has rolled over
                if (tRow.StartTime.Date > projectDay)
                {
                    if (dayNode != null)
                    {
                        dayNode.Text += FormatTimeSpan(dayCumulative);
                        dayCumulative = new TimeSpan();
                    }

                    projectDay = tRow.StartTime.Date;

                    dayNode = parent.Nodes.Add($"{projectDay:d} ");
                }

                entryTime = tRow.EndTime.Subtract(tRow.StartTime);

                // Add current time entry
                entryNode = dayNode.Nodes.Add($"{tRow.StartTime:t}-{tRow.EndTime:t} ");

                projectCumulative += entryTime;
                dayCumulative     += entryTime;

                entryNode.Text += FormatTimeSpan(entryTime);
            }

            // Last day must be updated
            if (dayNode != null)
            {
                dayNode.Text += FormatTimeSpan(dayCumulative);
            }

            return(projectCumulative);
        }
Exemplo n.º 5
0
        void dt_ProjectModified(object sender, TimeTrackerEvent e)
        {
            TimeTrackerDataSet.ProjectsRow row = e.ProjectEntry;

            // Modify the project menu list accordingly
            foreach (ToolStripMenuItem menuItem in projectMenuItems)
            {
                if (menuItem.Tag == row)
                {
                    // Update project menu item accordingly
                    menuItem.Text    = row.ProjectName;
                    menuItem.Visible = row.Active;
                    break;
                }
            }
        }
Exemplo n.º 6
0
 private void RaiseUserPunchedOut(TimeTrackerDataSet.ProjectsRow projectEntry, TimeTrackerDataSet.TimeEntriesRow timeEntryRow)
 {
     UserPunchedOut?.Invoke(this, new TimeTrackerEvent(projectEntry, timeEntryRow));
 }
Exemplo n.º 7
0
 private void RaiseProjectDeleted(TimeTrackerDataSet.ProjectsRow projectEntry)
 {
     ProjectDeleted?.Invoke(this, new TimeTrackerEvent(projectEntry, null));
 }
Exemplo n.º 8
0
 public TimeTrackerEvent(TimeTrackerDataSet.ProjectsRow projectEntry, TimeTrackerDataSet.TimeEntriesRow timeEntry)
 {
     ProjectEntry = projectEntry;
     TimeEntry    = timeEntry;
 }