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