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); }
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)); }
public IEnumerable <MeterData> QueryFileData([FromBody] DataQueryCriteria criteria, int index) { YokogawaFile yokoFile = FileUtility.GetFile(index); return(yokoFile.QueryData(criteria)); }
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)); }