using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; namespace IStation.DAL { /// /// /// public class CurveAnalyze { #region Path /// /// 查询文件路径 /// public string GetRootFolder(long monitorDataSourcesId) { var monitorDataSourcesFolder = FileHelper.GetMonitorDataSourcesFolder(Settings.Project.ID, monitorDataSourcesId); if (!Directory.Exists(monitorDataSourcesFolder)) Directory.CreateDirectory(monitorDataSourcesFolder); var monitorDataSetFolder = Path.Combine(monitorDataSourcesFolder, Settings.File.CurveAnalyzeDataFolder); if (!Directory.Exists(monitorDataSetFolder)) Directory.CreateDirectory(monitorDataSetFolder); return monitorDataSetFolder; } #endregion #region Get /// /// 查询全部 /// public List GetAll(long monitorDataSourcesId) { var path = GetRootFolder(monitorDataSourcesId); var all = FileIdHelper.GetAll(path); var models = all?.ToList(); return models; } /// /// 根据 Id 查询 /// public Model.CurveAnalyze GetByID(long monitorDataSourcesId, long Id) { if (Id < 1) return default; var all = GetAll(monitorDataSourcesId); var models = all?.ToList(); return models?.Find(t => t.ID == Id); } /// /// 根据 Id 集合查询 /// public List GetByIds(long monitorDataSourcesId, IEnumerable Ids) { if (Ids == null || Ids.Count() < 1) return default; var all = GetAll(monitorDataSourcesId); var models = all?.Where(x => Ids.Contains(x.ID)).ToList(); return models; } /// /// 根据 EquipmentID 查询 /// public List GetByEquipmentID(long monitorDataSourcesId, long stationId, long equipmentId) { if (stationId < 1) return default; if (equipmentId < 1) return default; var all = GetAll(monitorDataSourcesId); var models = all?.Where(x => x.StationID == stationId && x.EquipmentID == equipmentId).ToList(); return models; } #endregion #region Insert /// /// 插入 /// public long Insert(long monitorDataSourcesId, Model.CurveAnalyze rhs) { if (rhs == null) return default; var path = GetRootFolder(monitorDataSourcesId); return FileIdHelper.Insert(path, rhs); } /// /// 批量插入 /// public bool Inserts(long monitorDataSourcesId, IEnumerable list) { if (list == null || list.Count() < 1) return default; var path = GetRootFolder(monitorDataSourcesId); return FileIdHelper.Inserts(path, list); } /// /// 插入并返回 /// public Model.CurveAnalyze InsertR(long monitorDataSourcesId, Model.CurveAnalyze rhs) { if (rhs == null) return default; var path = GetRootFolder(monitorDataSourcesId); var entities = FileIdHelper.InsertR(path, rhs); return entities; } /// /// 批量插入并返回 /// public List InsertRs(long monitorDataSourcesId, IEnumerable list) { if (list == null || list.Count() < 1) return default; var path = GetRootFolder(monitorDataSourcesId); var models = FileIdHelper.InsertRs(path, list); return models; } #endregion #region Update /// /// 更新 /// public bool Update(long monitorDataSourcesId, Model.CurveAnalyze rhs) { if (rhs == null) return default; var path = GetRootFolder(monitorDataSourcesId); return FileIdHelper.Update(path, rhs); } /// /// 批量更新 /// public bool Updates(long monitorDataSourcesId, IEnumerable list) { if (list == null || list.Count() < 1) return default; var path = GetRootFolder(monitorDataSourcesId); return FileIdHelper.Updates(path, list); } #endregion #region Delete /// /// 根据 Id删除 /// public bool DeleteByID(long monitorDataSourcesId, long Id) { if (Id < 0) return default; var path = GetRootFolder(monitorDataSourcesId); var bol = FileIdHelper.DeleteByID(path, Id); if (bol) { new DAL.CurveAnalyzePacket().DeleteByCurveAnalyzeID(monitorDataSourcesId, Id); } return bol; } /// /// 根据 Id集合删除 /// public bool DeleteByIds(long monitorDataSourcesId, IEnumerable Ids) { if (Ids == null || Ids.Count() < 1) return default; var path = GetRootFolder(monitorDataSourcesId); var bol = FileIdHelper.DeleteByIds(path, Ids); return bol; } /// /// 删除 /// public bool Delete(long monitorDataSourcesId, Model.CurveAnalyze rhs) { if (rhs == null) return default; var path = GetRootFolder(monitorDataSourcesId); var bol = FileIdHelper.DeleteByID(path, rhs.ID); return bol; } /// /// 批量删除 /// public bool Deletes(long monitorDataSourcesId, IEnumerable list) { if (list == null || list.Count() < 1) return default; var path = GetRootFolder(monitorDataSourcesId); var Ids = list.Select(x => x.ID).ToList(); var bol = FileIdHelper.DeleteByIds(path, Ids); return bol; } /// /// 删除全部 /// public bool DeleteAll(long monitorDataSourcesId) { var path = GetRootFolder(monitorDataSourcesId); var bol = FileIdHelper.DeleteAll(path); return bol; } #endregion #region Exist /// /// 是否存在文件 /// public bool IsExist(long monitorDataSourcesId) { var path = GetRootFolder(monitorDataSourcesId); return FileIdHelper.IsExist(path); } /// /// 是否存在对象 /// public bool Exist(long monitorDataSourcesId, long id) { if (id < 1) return default; var list = GetAll(monitorDataSourcesId); if (list == null || list.Count < 1) return default; return list.Exists(x => x.ID == id); } #endregion /// /// 清空 /// public void Clear(long monitorDataSourcesId, long id) { if (id < 1) return; var folder = new DAL.CurveAnalyzePoint().GetCurveAnalyzePacketFolder(monitorDataSourcesId, id); Directory.Delete(folder, true); } } }