public TimelineData ForPeriod(DateTime startDate, DateTime endDate) { (startDate, endDate) = DateUtil.Sorted(startDate, endDate); return(new TimelineData { Id = Id, ActivitySegments = ActivitySegments.Where(segment => segment.EndDateTime > startDate && segment.StartDateTime < endDate).ToList(), PlaceVisits = PlaceVisits.Where(visit => visit.EndDateTime > startDate && visit.StartDateTime < endDate).ToList() }); }
public Dictionary <DbLocation, int> LocationsByCount() { var locationCounts = new Dictionary <DbLocation, int>(); foreach (var location in PlaceVisits.Select(visit => visit.LocationVisit.Location)) { if (!locationCounts.ContainsKey(location)) { locationCounts[location] = 0; } locationCounts[location]++; } return(locationCounts); }