public TimeSpan GetWorkedTime() { long totalTicksWorked = 0; var orderedTimes = TimeEntries.OrderBy(time => time.DateHourPointed).ToList(); if (orderedTimes.Count > 0) { int lastIndex = orderedTimes.Count % 2 == 0 ? orderedTimes.Count : orderedTimes.Count - 1; for (int index = 0; index < lastIndex; index += 2) { totalTicksWorked += orderedTimes[index + 1].DateHourPointed.Ticks - orderedTimes[index].DateHourPointed.Ticks; } } return(TimeSpan.FromTicks(totalTicksWorked)); }
/// <summary> /// Update the entries on the page /// </summary> /// <returns></returns> private async Task UpdateEntries() { UpdateRunningTimeEntry(); if (!App.Data.TimeEntries.Any()) { await App.Data.Synchronice(); } TimeEntries.Clear(); foreach (TimeEntry entry in App.Data.TimeEntries) { TimeEntryByDateViewModel model = TimeEntries.Where(x => x.Date == entry.Start.Date).DefaultIfEmpty(new TimeEntryByDateViewModel(entry.Start.Date)).First(); model.Entries.Add(entry); if (!TimeEntries.Contains(model)) { TimeEntries.Add(model); } } TimeEntries.OrderBy(x => x.Date); }