示例#1
0
        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));
        }
示例#2
0
        /// <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);
        }