コード例 #1
0
ファイル: OtherVMs.cs プロジェクト: Rumkee/Website1
        public DonutChartVM(chartData _data, bool _centerLabel)
        {
            Data = _data;

            centerLabel = _centerLabel;
            Animate     = true;
        }
コード例 #2
0
        public async Task <JsonResult> GetTodaysPower(string deviceId)
        {
            DateTime start = DateTime.UtcNow.AddHours(-12);
            int      year  = start.Year;
            int      month = start.Month;
            //  Average all results over the minute
            List <DateTime> timeFrame = new List <DateTime>();

            var query = (from i in db.DataLogs
                         where i.timeStamp >= start && i.deviceId == deviceId
                         group i by new { i.timeStamp.Day, i.timeStamp.Hour, i.timeStamp.Minute } into grp
                         select new
            {
                day = grp.Key.Day,
                hour = grp.Key.Hour,
                minute = grp.Key.Minute,
                compressorCurrent = grp.Average(x => x.compressorCurrent),
                fanCurrent = grp.Average(x => x.fanCurrent)
            }).ToListAsync();

            for (int i = 1; i <= 720; i++)
            {
                timeFrame.Add(start.AddMinutes(i));
            }

            var results = await query;

            var data = (from t in timeFrame
                        join i in results on new { x = t.Day, y = t.Hour, z = t.Minute } equals new { x = i.day, y = i.hour, z = i.minute } into joined
                        from j in joined.DefaultIfEmpty()
                        select new
            {
                timeStamp = new DateTime(year, month, t.Day, t.Hour, t.Minute, 0),
                compressorCurrent = j == null? 0 : j.compressorCurrent,
                fanCurrent = j == null? 0 : j.fanCurrent
            }).ToList();

            chartData powerChart = new chartData();
            dataset   set        = new dataset();

            powerChart.labels = data.Select(x => x.timeStamp.ToString()).ToList();
            set = new dataset()
            {
                label = "Compressor Current", data = data.Select(x => x.compressorCurrent).ToList()
            };
            powerChart.datasets.Add(set);
            set = new dataset()
            {
                label = "Fan current", data = data.Select(x => x.fanCurrent).ToList()
            };
            powerChart.datasets.Add(set);
            return(Json(powerChart));
        }
コード例 #3
0
        private void getData()
        {
            loadPercent = 0;
            long bytesLoad  = 0;
            long bytesTotal = 0;
            var  sett       = new System.Xml.XmlDocument();

            sett.Load(AppDomain.CurrentDomain.BaseDirectory + "config.xml");
            string path = "";
            var    s    = sett.SelectNodes("settings/server/logs/log");

            for (int i = 0; i < s.Count; i++)
            {
                if (s[i].Attributes["type"].InnerText == "main")
                {
                    path = s[i].Attributes["path"].InnerText;
                }
            }
            path = path.Replace("%STARTPATH%", AppDomain.CurrentDomain.BaseDirectory);
            if (!(new System.IO.FileInfo(path).Exists))
            {
                MessageBox.Show("No logged data.");
                return;
            }
            var file = new System.IO.StreamReader(new System.IO.FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite));

            bytesTotal = file.BaseStream.Length;
            while (!file.EndOfStream)
            {
                string line = file.ReadLine();
                if (line.StartsWith("GetFile\t"))
                {
                    string[] par = line.Split('\t');
                    bytesLoad += line.Length;
                    DateTime d;
                    if (DateTime.TryParse(par[1], out d))
                    {
                        d = new DateTime(d.Year, d.Month, d.Day, d.Hour, 0, 0);
                        if (data.ContainsKey(d))
                        {
                            data[d] = new chartData()
                            {
                                numOfRequest = data[d].numOfRequest + 1
                            };
                        }
                        else
                        {
                            data.Add(d, new chartData()
                            {
                                numOfRequest = 0
                            });
                        }
                    }
                }
                loadPercent = (double)bytesLoad / (double)bytesTotal;
            }
            if (date1.Ticks == 0)
            {
                date1 = data.Keys.Min <DateTime>();
            }
            if (date2.Ticks == 0)
            {
                date2 = data.Keys.Max <DateTime>();
            }
            loadPercent = 1;
            dataIsReady = true;
        }