Beispiel #1
0
        private string GetMinMaxTemp(_4stasContext context, StatType type)
        {
            DateTime start;
            DateTime end;

            switch (type)
            {
            case StatType.Day:
                start = DateTime.Now.Date;
                end   = DateTime.Now.Date.AddDays(1).AddTicks(-1);
                break;

            case StatType.Weekend:
                start = DateTime.Now.StartOfWeek(DayOfWeek.Saturday);
                end   = DateTime.Now.StartOfWeek(DayOfWeek.Sunday).AddDays(1).AddTicks(-1);
                break;

            case StatType.Week:
                start = DateTime.Now.StartOfWeek(DayOfWeek.Monday);
                end   = DateTime.Now.StartOfWeek(DayOfWeek.Sunday).AddDays(1).AddTicks(-1);
                break;

            case StatType.Month:
                start = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
                end   = start.AddMonths(1).AddTicks(-1);
                break;

            //case StatType.Season:
            //    start = DateTime.Now.StartOfSeason();
            //    end = start.AddMonths(3).AddTicks(-1);
            //    break;

            case StatType.Year:
                start = new DateTime(DateTime.Now.Year, 1, 1);
                end   = start.AddYears(1).AddTicks(-1);
                break;

            default:
                return(string.Empty);
            }
            var records = context.Monitor.AsQueryable().Where(_ => _.Timestamp >= start && _.Timestamp <= end).ToList();
            //var minTemp = records.Aggregate((currMin, x) => currMin.TemperatureOutside < x.TemperatureOutside ? currMin : x);
            //var maxTemp = records.Aggregate((currMin, x) => currMin.TemperatureOutside > x.TemperatureOutside ? currMin : x);

            //var a = records.Aggregate(
            // new
            // {
            //     minTemperature = (float?)float.MaxValue,
            //     maxTemperature = (float?)float.MinValue
            // },
            // (accumulator, o) => new
            // {
            //     minTemperature = o.TemperatureOutside < accumulator.minTemperature ? o.TemperatureOutside : accumulator.minTemperature, //Math.Min(o.TemperatureOutside, accumulator.minTemperature),
            //     maxTemperature = o.TemperatureOutside > accumulator.maxTemperature ? o.TemperatureOutside : accumulator.maxTemperature
            // });

            var sortedRecords = records.OrderByDescending(x => x.TemperatureOutside).ToList();
            var maxTemp       = sortedRecords.First();
            var minTemp       = sortedRecords.Last();

            return(string.Empty);
        }
Beispiel #2
0
 public RepositoryBase(_4stasContext context)
 {
     _context = context;
 }
Beispiel #3
0
 /// <inheritdoc />
 public StateRepository(_4stasContext context)
 {
     _context = context;
 }