Exemple #1
0
        public static IEnumerable <MeterData> QueryData(this YokogawaFile yokoFile, DataQueryCriteria criteria)
        {
            var data = GetData(yokoFile);

            if (data == null)
            {
                return(null);
            }

            if (!string.IsNullOrEmpty(criteria.HeaderPattern))
            {
                data = data.Where(x => Regex.IsMatch(x.Header, criteria.HeaderPattern));
            }

            if (criteria.StartDate.HasValue)
            {
                data = data.Where(x => x.TimeStamp >= criteria.StartDate.Value);
            }

            if (criteria.EndDate.HasValue)
            {
                data = data.Where(x => x.TimeStamp < criteria.EndDate.Value);
            }

            return(data);
        }
Exemple #2
0
        public IQueryable <MeterData> QueryMeterData(DataQueryCriteria criteria)
        {
            var result = _session.Query <MeterData>();

            if (criteria != null)
            {
                if (!string.IsNullOrEmpty(criteria.HeaderPattern))
                {
                    result = result.Where(x => x.Header.Like(criteria.HeaderPattern));
                }

                if (criteria.StartDate.HasValue)
                {
                    result = result.Where(x => x.TimeStamp >= criteria.StartDate.Value);
                }

                if (criteria.EndDate.HasValue)
                {
                    result = result.Where(x => x.TimeStamp < criteria.EndDate.Value);
                }
            }

            return(result);
        }
 public IEnumerable <MeterData> QueryFileImportData([FromBody] DataQueryCriteria criteria)
 {
     return(Request.GetUnitOfWork().QueryMeterData(criteria));
 }
Exemple #4
0
        public IEnumerable <MeterData> QueryFileData([FromBody] DataQueryCriteria criteria, int index)
        {
            YokogawaFile yokoFile = FileUtility.GetFile(index);

            return(yokoFile.QueryData(criteria));
        }
Exemple #5
0
        public ReportModel RunReport(DataQueryCriteria criteria, string reportType)
        {
            if (criteria == null)
            {
                throw new Exception("Criteria is required.");
            }

            if (!criteria.StartDate.HasValue)
            {
                throw new Exception("Criteria must have a StartDate value.");
            }

            if (!criteria.EndDate.HasValue)
            {
                throw new Exception("Criteria must have a EndDate value.");
            }

            if (criteria.StartDate.Value >= criteria.EndDate.Value)
            {
                throw new Exception("Criteria must have a StartDate that comes before the EndDate.");
            }

            IList <MeterData> meterData = QueryMeterData(criteria)
                                          .Where(x => x.TimeStamp.Day == 1 && x.TimeStamp.Hour == 0 && x.TimeStamp.Minute == 0 && x.TimeStamp.Second == 0).ToList();

            IList <Report> reports;

            if (reportType != "all")
            {
                reports = GetReports().Where(x => x.ReportType == reportType).ToList();
            }
            else
            {
                reports = GetReports().ToList();
            }

            var datasets = new List <ReportDataset>();

            var labels = new List <string>();
            var d      = criteria.StartDate.Value;

            while (d < criteria.EndDate.Value)
            {
                labels.Add(d.ToString("MMM \\'yy"));

                foreach (var rep in reports)
                {
                    ReportDataset ds = datasets.FirstOrDefault(x => x.Label == rep.ReportName);

                    if (ds == null)
                    {
                        ds = new ReportDataset()
                        {
                            Label                = rep.ReportName,
                            Data                 = new List <double>(),
                            BorderColor          = rep.BorderColor,
                            BackgroundColor      = rep.BackgroundColor,
                            PointBorderColor     = rep.PointBorderColor,
                            PointBackgroundColor = rep.PointBackgroundColor,
                            UnitCost             = rep.UnitCost,
                            Fill                 = false
                        };

                        datasets.Add(ds);
                    }

                    var md    = meterData.FirstOrDefault(x => x.TimeStamp == d && x.Header == rep.Header);
                    var value = md == null ? 0 : md.Value;
                    ds.Data.Add(value);
                }

                d = d.AddMonths(1);
            }


            var result = new ReportModel()
            {
                Labels   = labels,
                Datasets = datasets.Where(x => x.Data.Sum() > 0)
            };

            return(result);
        }
 public ReportModel RunReport([FromBody] DataQueryCriteria criteria, [FromUri] string type)
 {
     return(Request.GetUnitOfWork().RunReport(criteria, type));
 }