private static async Task Execute(string timerange, bool summary, bool includeIds, bool outputJson, string search) { var client = Program.GetHarvestClient(); var me = await client.GetCurrentUser(); DateTime from = DateTime.Today; DateTime until = DateTime.Today; if (timerange != null) { TimeRangeHelper.GetTimerangeFromString(timerange, out from, out until); } var entries = await client.GetTimeEntriesForUser(me.Id, from, until); var filtered = entries.TimeEntries; if (string.IsNullOrEmpty(search) == false) { filtered = filtered .Where(e => e.Project.Name.Contains(search, StringComparison.OrdinalIgnoreCase) || e.Client.Name.Contains(search, StringComparison.OrdinalIgnoreCase) || e.Task.Name.Contains(search, StringComparison.OrdinalIgnoreCase) || (e.Notes != null && e.Notes.Contains(search, StringComparison.OrdinalIgnoreCase))) .ToArray(); } if (outputJson) { Console.WriteLine(JsonConvert.SerializeObject(filtered, Formatting.Indented)); } else { decimal hours = 0.0m; foreach (var e in filtered) { TimeEntry_Show.ShowTimeEntry(e, includeIds); hours += e.Hours; } if (summary) { Console.WriteLine(); Console.ForegroundColor = ConsoleColor.White; Console.Write("Total: "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(hours.ToString()); Console.ForegroundColor = ConsoleColor.White; Console.Write(" hours"); Console.ResetColor(); Console.WriteLine(); } } }
private static async Task Execute(long?id, decimal?hours, string timerange, string search, string notes) { var client = Program.GetHarvestClient(); DateTime from = DateTime.Today; DateTime until = DateTime.Today; if (timerange != null) { TimeRangeHelper.GetTimerangeFromString(timerange, out from, out until); } else { TimeRangeHelper.GetTimerangeFromString("last30days", out from, out until); } TimeEntry entryToCopy = null; if (id.HasValue) { entryToCopy = await client.GetTimeEntry(id.Value); } else { var me = await client.GetCurrentUser(); var entries = await client.GetTimeEntriesForUser(me.Id, from, until); var filtered = entries.TimeEntries; if (string.IsNullOrEmpty(search) == false) { filtered = filtered .Where(e => e.Project.Name.Contains(search, StringComparison.OrdinalIgnoreCase) || e.Client.Name.Contains(search, StringComparison.OrdinalIgnoreCase) || e.Task.Name.Contains(search, StringComparison.OrdinalIgnoreCase) || (e.Notes != null && e.Notes.Contains(search, StringComparison.OrdinalIgnoreCase))) .ToArray(); } filtered = filtered.ToArray(); if (filtered.Length > 1) { entryToCopy = SelectionHelper.Select(filtered, TimeEntry_Show.ShowTimeEntry); if (entryToCopy == null) { Console.WriteLine("Aborting."); return; } } else { entryToCopy = filtered[0]; } } TimeEntry newEntry = await CopyTimeEntry(client, entryToCopy, hours); TimeEntry_Show.ShowTimeEntry(newEntry); }
public void TimeRangeString_LongTerm_AreEqual() { // assert Assert.AreEqual("long_term", TimeRangeHelper.TimeRangeString(TimeRange.LongTerm)); }
public void TimeRangeString_MediumTerm_AreEqual() { // assert Assert.AreEqual("medium_term", TimeRangeHelper.TimeRangeString(TimeRange.MediumTerm)); }
public void TimeRangeString_ShortTerm_AreEqual() { // assert Assert.AreEqual("short_term", TimeRangeHelper.TimeRangeString(TimeRange.ShortTerm)); }