Ejemplo n.º 1
0
        public static IEnumerable <GraphData> GroupBy(this IQueryable <GraphData> graphData, int interval = 0, DateTime?firstDay = null)
        {
            if (interval <= 0)
            {
                return(graphData);
            }

            DateTime realFirstDay = firstDay ?? graphData.First().Timestamp;
            var      q            = from d in graphData
                                    let groupNumber = VinesenseContext.DateDiff(d.Timestamp, firstDay).Value / interval
                                                      let groupNumberInteger = DbFunctions.Truncate((double)groupNumber, 0)
                                                                               group d by(int) groupNumberInteger.Value into g
                                                                               select new
            {
                GroupNumber = g.Key,
                Value       = g.Average((d) => d.Value)
            };

            return(from v in q.AsEnumerable()
                   select new GraphData
            {
                Timestamp = realFirstDay + TimeSpan.FromDays(interval * v.GroupNumber),
                Value = v.Value
            });
        }
        public DbContext CreateContext()
        {
            var context = new VinesenseContext();

            // context.Database.Log = (log) => Debug.WriteLine(log);
            return(context);
        }