Ejemplo n.º 1
0
        /// <summary>
        /// Gets the hourly counter.
        /// </summary>
        /// <returns>The hourly counter.</returns>
        /// <param name="domain">Domain.</param>
        /// <param name="address">Address.</param>
        /// <param name="parameterName">Parameter name.</param>
        /// <param name="timescaleseconds">Timescaleseconds.</param>
        /// <param name="startDate">Start date.</param>
        /// <param name="endDate">End date.</param>
        public object[][] GetHourlyCounter(//List<StatisticsEntry>
            string domain,
            string address,
            string parameterName,
            double timescaleseconds,
            DateTime startDate, DateTime endDate
            )
        {
            var hoursAverage = _statisticsRepository.GetHourlyCounter(domain, address, parameterName, timescaleseconds,
                                                                      startDate, endDate);

            var dayHourlyStats = new List <object>();

            for (int h = 0; h < 24; h++)
            {
                StatisticsDbEntry firstEntry = null;
                if (hoursAverage != null && hoursAverage.Count > 0)
                {
                    firstEntry = hoursAverage.Find(se => se.TimeStart.ToLocalTime().Hour == h);
                }
                var date = _dateTime.Today.AddHours(h);

                if (firstEntry != null)
                {
                    var sum  = hoursAverage.FindAll(se => se.TimeStart.ToLocalTime().Hour == h).Sum(se => se.AvgValue);
                    var item = new[] { Utility.DateToJavascript(date), sum };
                    dayHourlyStats.Add(item);
                }
                else
                {
                    var item = new[] { Utility.DateToJavascript(date), 0 };
                    dayHourlyStats.Add(item);
                }
            }

            return(new[] { dayHourlyStats.ToArray() });
        }