Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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));
        }
Ejemplo n.º 3
0
        /// <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));
        }