using System; using System.Collections.Generic; using System.IO; using System.Linq; namespace IStation.DAL { /// /// 曲线分析点包 /// public partial class CurveAnalyzePoint { /// /// 文件信息类 /// private class FileInfo { public string FullName { get; set; } public int RecordCount { get; set; } } #region FolderInfo /// /// 查询年月 /// private bool GetFileInfo(string filePath, out long curveAnalyzeId, out int recordCount) { curveAnalyzeId = recordCount = 0; if (!File.Exists(filePath)) return false; var name = Path.GetFileNameWithoutExtension(filePath); var strList = name.Split(Settings.File.FileNameSpacer); if (strList.Length != 2) return false; if (!long.TryParse(strList[0], out curveAnalyzeId)) { return false; } if (!int.TryParse(strList[1], out recordCount)) { return false; } return true; } /// /// 查询文件信息 /// private FileInfo GetCurveAnalyzePointFileInfo(string folder, long curveAnalyzeId) { if (!Directory.Exists(folder)) return default; var files = Directory.GetFiles(folder); if (files == null || files.Count() < 1) return default; FileInfo info = null; foreach (var file in files) { if (!GetFileInfo(file, out long id, out int recordCount)) continue; if (id != curveAnalyzeId) continue; info = new FileInfo { FullName = file, RecordCount = recordCount }; } return info; } /// /// 查询文件信息 /// private List GetCurveAnalyzePointFileInfoList(string folder, long curveAnalyzeId) { if (!Directory.Exists(folder)) return default; var files = Directory.GetFiles(folder); if (files == null || files.Count() < 1) return default; List list = new List(); foreach (var file in files) { if (!GetFileInfo(file, out long id, out int recordCount)) continue; if (id != curveAnalyzeId) continue; list.Add(new FileInfo { FullName = file, RecordCount = recordCount }); } return list; } #endregion #region CsvConvert //To public static string ToDsString(Model.CurveAnalyzePoint model) { var line = $"{model.Time:yyyy-MM-dd HH:mm:ss}" + $",{model.Q}" + $",{model.P1}" + $",{model.P2}" + $",{model.H}" + $",{model.P}" + $",{model.E}" + $",{model.N}" + $",{model.HZ}" + $",{model.Status}"; return line; } //from public static Model.CurveAnalyzePoint FromDsString(string dsString) { var strList = dsString.Split(','); if (strList.Length < 2) return default; var model = new Model.CurveAnalyzePoint(); model.Time = DateTime.Parse(strList[0]); model.Q = double.Parse(strList[1]); model.P1 = double.Parse(strList[2]); model.P2 = double.Parse(strList[3]); model.H = double.Parse(strList[4]); model.P = double.Parse(strList[5]); model.E = double.Parse(strList[6]); model.N = double.Parse(strList[7]); model.HZ = double.Parse(strList[8]); model.Status = int.Parse(strList[9]); return model; } #endregion } }