コード例 #1
0
        /// <summary>
        /// Stops current WorkedHours object and saves it, remotely if possible, localy if necessary.
        /// </summary>
        /// <param name="current">Current active WorkedHours object.</param>
        /// <param name="getter">RedmineXmlGetter object</param>
        /// <returns>True in case it was possible to save remotely. False in case it was a local save.</returns>
        public bool endWork(WorkedHours current, RedmineApi.RedmineXmlGetter getter)
        {
            current.EndTime = DateTime.Now;
            _workedHours.Add(current);

            //History:
            current.Issue.WorkedThisSession += (current.EndTime - current.StartTime);
            if (_sessionHistory.Contains(current.Issue))
            {
                _sessionHistory.Remove(current.Issue);
            }
            _sessionHistory.Add(current.Issue);


            if (!remoteSave(getter)) //Saves localy in case it cannot save remotelly.
            {
                this.localSave();
                return(false);
            }
            else //In case it can save remotely, cleans things up
            {
                _workedHours = new List <WorkedHours>();
                clearLocalFile();
                return(true);
            }
        }
コード例 #2
0
        private DayStatistics(int daysAgo, RedmineApi.RedmineXmlGetter getter)
        {
            _getter = getter;
            _watch  = new Stopwatch();
            double daysToSubtract = -daysAgo;

            _day  = (int)DateTime.Today.AddDays(-daysAgo).DayOfWeek;
            _time = _getter.getWorkedHoursInDate(DateTime.Today.AddDays(-daysAgo));
        }
コード例 #3
0
        /// <summary>
        /// Get the amount of hours worked on the last 7 days.
        /// </summary>
        /// <param name="getter">RedmineXmlGetter instance</param>
        /// <returns>List of last 7 days (including today).</returns>
        public static List <DayStatistics> getPastWeek(RedmineApi.RedmineXmlGetter getter)
        {
            List <DayStatistics> days  = new List <DayStatistics>();
            DayStatistics        today = new DayStatistics();

            today._day  = (int)DateTime.Today.DayOfWeek;
            today._time = getter.getWorkedHoursInDate(DateTime.Today);
            days.Add(today);
            for (int i = 1; i < 7; i++)
            {
                days.Add(new DayStatistics(i, getter));
            }
            return(days);
        }
コード例 #4
0
 /// <summary>
 /// Saves remotely
 /// </summary>
 /// <param name="getter">RedmineXmlGetter object</param>
 /// <returns>True in case it was sucessful. False otherwise.</returns>
 private bool remoteSave(RedmineApi.RedmineXmlGetter getter)
 {
     return(RedmineApi.RedmineUploadData.uploadWorkedHours(getter));
 }
コード例 #5
0
 /// <summary>
 /// Stops tracking time for this issue.
 /// </summary>
 /// <param name="getter">RedmineXmlGetter object.</param>
 /// <returns>True in case it could be remotely stored, false in case it could only be localy stored.</returns>
 public bool endWork(RedmineApi.RedmineXmlGetter getter)
 {
     _currentSessionTime.Stop();
     _pIssue.IsActive = false;
     return(_manager.endWork(_current, getter));
 }
コード例 #6
0
 /// <summary>
 /// Get all projects and issues assigned to the user.
 /// </summary>
 /// <param name="getter">RedmineXmlGetter object</param>
 /// <returns>List of all projects the user is allowed to see.</returns>
 public static List <FProject> getAll(RedmineApi.RedmineXmlGetter getter)
 {
     getter.Load();
     return(getFrontProjectList(getter.Projects, getter.Manager));
 }