using IStation.Untity; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IStation.DataProvider { /// /// json仓库 /// public class JsonStore { private static DateTime _debugDay=DateTime.MinValue; private static List> _dayRecordList = null;//数据日缓存 //获取缓存 private static List GetDebugCache(DateTime dt) { var debugDay = dt.Date; if (debugDay != _debugDay) { _debugDay = debugDay; _dayRecordList = new List>(); var testDataFolder = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ConfigHelper.TestDataFolder, _debugDay.Day.ToString()); if (!Directory.Exists(testDataFolder)) return default; var directInfo = new DirectoryInfo(testDataFolder); var files = directInfo.GetFiles(); if (files == null || files.Count() < 1) return default; foreach (var filePath in files) { var str = File.ReadAllText(filePath.FullName); if (string.IsNullOrEmpty(str)) return default; var data = JsonHelper.Json2Object>(str); if (data == null || data.Count < 1) continue; _dayRecordList.Add(data); } } var list = new List(); foreach (var records in _dayRecordList) { var record = records.FindLast(x => { var dt1 = Convert.ToDateTime(x.DataTime); var dt2 = new DateTime(dt.Year, dt.Month, dt.Day, dt1.Hour, dt1.Minute, dt1.Second); return dt2 < dt; }); list.Add(record); } return list.Where(x => x != null).ToList(); } /// /// 获取当前记录 /// public static List GetCurrentRecord(DateTime dt) { var debugList = GetDebugCache(dt); if (debugList == null || debugList.Count < 1) return default; var srcList = new List(); foreach (var debugRecord in debugList) { if (!string.IsNullOrEmpty(debugRecord.ObjectId)) { var srcRecord = new SrcRecord(); srcRecord.TagName = debugRecord.ObjectId; srcRecord.DataTime = debugRecord.DataTime; srcRecord.DataValue = debugRecord.DataValue; srcList.Add(srcRecord); } } return srcList; } } }