/// <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); } }
/// <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); }