/// <summary> /// Queries for the most current event /// </summary> /// <param name="activity"></param> /// <param name="maxAge">Timespan containing max age of "current"</param> /// <returns></returns> public static async Task <MotionActivityEvent> GetCurrentActivity(this IMotionActivityManager activity, TimeSpan?maxAge = null) { maxAge = maxAge ?? TimeSpan.FromMinutes(5); var end = DateTimeOffset.UtcNow; var start = end.Subtract(maxAge.Value); var result = (await activity.Query(start, end)).OrderBy(x => x.Timestamp).FirstOrDefault(); return(result); }
/// <summary> /// Queries for activities for an entire day (beginning to end) /// </summary> /// <param name="activity"></param> /// <param name="date"></param> /// <returns></returns> public static Task <IList <MotionActivityEvent> > QueryByDate(this IMotionActivityManager activity, DateTimeOffset date) { var range = date.GetRangeForDate(); return(activity.Query(range.Start, range.End)); }
/// <summary> /// Queries for activities for an entire day (beginning to end) /// </summary> /// <param name="activity"></param> /// <param name="date"></param> /// <returns></returns> public static Task <IList <MotionActivityEvent> > QueryByDate(this IMotionActivityManager activity, DateTimeOffset date) { var endOfDay = date.Date.AddDays(1).AddTicks(-1); return(activity.Query(date.Date, endOfDay)); }