コード例 #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
        /// <summary>
        /// Called when an Issue starts to be tracked.
        /// </summary>
        /// <param name="issue">Issue on which the user will be working.</param>
        /// <returns>Returns a started WorkedHours object.</returns>
        public WorkedHours startWork(RedmineApi.Issue issue)
        {
            WorkedHours current = new WorkedHours(issue);

            current.StartTime = DateTime.Now;
            return(current);
        }