using System; using System.Text; using System.Collections.Generic; using System.Data; using System.Runtime.Serialization; using System.Linq; using System.Security.Cryptography; using System.IO; namespace IStation.DAL.LocalFile { /// /// 测点映射 /// public class MonitorPointMapping : IDAL.IMonitorPointMapping { #region Path /// /// 获取文件路径 /// private string GetFolderPath(long projectId) { return FileHelper.GetProjectPath(projectId); } #endregion #region Query /// /// 查询全部 /// public List QueryAll(long projectId) { if (projectId < 1) return default; var path = GetFolderPath(projectId); var all = FileIdHelper.QueryAll(path); var entities = all?.OrderBy(x => x.SortCode).ToList(); return entities; } /// /// 根据Id查询 /// public Entity.MonitorPointMapping QueryById(long projectId, long Id) { if (projectId < 1) return default; if (Id < 0) return default; var all = QueryAll(projectId); var entities = all?.ToList(); return entities?.Find(t => t.Id == Id); } /// /// 根据Id集合查询 /// public List QueryByIds(long projectId, IEnumerable Ids) { if (projectId < 1) return default; if (Ids == null || Ids.Count() < 1) return default; var all = QueryAll(projectId); var entities = all?.Where(x => Ids.Contains(x.Id)).ToList(); return entities; } /// /// 根据 MonitorPointId 获取 /// public List QueryByMonitorPointId(long projectId, long monitorPointId) { if (projectId < 1) return default; if (monitorPointId < 0) return default; var all = QueryAll(projectId); var entities = all?.Where(x => x.MonitorPointId == monitorPointId).ToList(); return entities; } /// ///根据 ObjectType 和 ObjectId 获取 /// public List QueryByObjectTypeAndObjectId(long projectId, string objectType, long objectId) { if (projectId < 1) return default; if (objectId < 0) return default; var all = QueryAll(projectId); var entities = all?.Where(x => x.ObjectType == objectType && x.ObjectId == objectId).ToList(); return entities; } /// /// 根据 ObjectType 和 ObjectIds 获取 /// public List GetByObjectTypeAndObjectIds(long projectId, string objectType, IEnumerable objectIds) { if (projectId < 1) return default; if (objectIds == null || objectIds.Count() < 1) return default; var all = QueryAll(projectId); var entities = all?.Where(x => x.ObjectType == objectType && objectIds.Contains(x.ObjectId)).ToList(); return entities; } #endregion #region Set /// /// 根据 ObjectType 和 ObjectId 设置 /// public bool SetOfObject(long projectId, string objectType, long objectId, IEnumerable list) { if (list == null || list.Count() < 1) { return DeleteByObjectTypeAndObjectId(projectId, objectType, objectId); } var all = QueryAll(projectId); if (all == null) all = new List(); all.RemoveAll(x => x.ObjectType == objectType && x.ObjectId == objectId); list.ToList().ForEach(x => { if (x.Id < 1) x.Id = FileHelper.NextId(); }); all.AddRange(list); Covers(projectId, list); return true; } #endregion #region Insert /// /// 插入 /// public long Insert(long projectId, Entity.MonitorPointMapping rhs) { if (projectId < 1) return default; if (rhs == null) return default; var path = GetFolderPath(projectId); return FileIdHelper.Insert(path, rhs); } /// /// 批量插入 /// public bool Inserts(long projectId, IEnumerable list) { if (projectId < 1) return default; if (list == null || list.Count() < 1) return default; var path = GetFolderPath(projectId); return FileIdHelper.Inserts(path, list); } /// /// 插入并返回 /// public Entity.MonitorPointMapping InsertR(long projectId, Entity.MonitorPointMapping rhs) { if (projectId < 1) return default; if (rhs == null) return default; var path = GetFolderPath(projectId); var entities = FileIdHelper.InsertR(path, rhs); return entities; } /// /// 批量插入并返回 /// public List InsertsR(long projectId, IEnumerable list) { if (projectId < 1) return default; if (list == null || list.Count() < 1) return default; var path = GetFolderPath(projectId); var entities = FileIdHelper.InsertRs(path, list); return entities?.Select(x => x.Id).ToList(); } #endregion #region Update /// /// 更新 /// public bool Update(long projectId, Entity.MonitorPointMapping rhs) { if (projectId < 1) return default; if (rhs == null) return default; var path = GetFolderPath(projectId); return FileIdHelper.Update(path, rhs); } /// /// 批量更新 /// public bool Updates(long projectId, IEnumerable list) { if (projectId < 1) return default; if (list == null || list.Count() < 1) return default; var path = GetFolderPath(projectId); return FileIdHelper.Updates(path, list); } #endregion #region Cover /// /// 批量覆盖 /// public bool Covers(long projectId, IEnumerable list) { if (list == null || list.Count() < 1) return default; var path = GetFolderPath(projectId); return FileIdHelper.Covers(path, list); } #endregion #region Delete /// /// 根据Id删除 /// public bool DeleteById(long projectId, long Id) { if (projectId < 1) return default; if (Id < 0) return default; var path = GetFolderPath(projectId); var bol = FileIdHelper.DeleteById(path, Id); return bol; } /// /// 根据Id集合删除 /// public bool DeleteByIds(long projectId, IEnumerable Ids) { if (projectId < 1) return default; if (Ids == null || Ids.Count() < 1) return default; var path = GetFolderPath(projectId); var bol = FileIdHelper.DeleteByIds(path, Ids); return bol; } /// /// 删除 /// public bool Delete(long projectId, Entity.MonitorPointMapping rhs) { if (projectId < 1) return default; if (rhs == null) return default; var path = GetFolderPath(projectId); var bol = FileIdHelper.DeleteById(path, rhs.Id); return bol; } /// /// 批量删除 /// public bool Deletes(long projectId, IEnumerable list) { if (projectId < 1) return default; if (list == null || list.Count() < 1) return default; var path = GetFolderPath(projectId); var Ids = list.Select(x => x.Id).ToList(); var bol = FileIdHelper.DeleteByIds(path, Ids); return bol; } /// /// 删除全部 /// public bool DeleteAll(long projectId) { if (projectId < 1) return default; var path = GetFolderPath(projectId); var bol = FileIdHelper.DeleteAll(path); return bol; } /// /// 根据 MonitorPointId 删除 /// public bool DeleteByMonitorPointId(long projectId, long monitorPointId) { if (projectId < 1) return default; if (monitorPointId < 0) return default; var path = GetFolderPath(projectId); var list = QueryByMonitorPointId(projectId, monitorPointId); if (list != null && list.Count > 0) { var Ids = list.Select(x => x.Id); return FileIdHelper.DeleteByIds(path, Ids); } return true; } /// /// 根据 ObjectType 和 ObjectId 删除 /// public bool DeleteByObjectTypeAndObjectId(long projectId, string objectType, long objectId) { if (projectId < 1) return default; if (objectId < 0) return default; var path = GetFolderPath(projectId); var list = QueryByObjectTypeAndObjectId(projectId, objectType, objectId); if (list != null && list.Count > 0) { var Ids = list.Select(x => x.Id); return FileIdHelper.DeleteByIds(path, Ids); } return true; } #endregion } }