using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IStation.DAL.LocalFile { /// /// 监测数据集概要辅助类 /// public class MonitorDataSetSummaryHelper { #region Get /// /// 查询全部 /// public static List GetAll(string path) { if (string.IsNullOrEmpty(path)) return default; var fileName = FileHelper.GetFilePath(path); var list = FileHelper.GetFileObject>(fileName); return list; } /// /// 根据 Id查询 /// public static Model.MonitorDataSetSummary GetById(string path, long Id) { var list = GetAll(path); if (list == null || list.Count < 1) return default; return list.Find(t => t.Id == Id); } /// /// 根据 Id集合查询 /// public static IEnumerable GetByIds(string path, IEnumerable Ids) { if (Ids == null || Ids.Count() < 1) return default; var list = GetAll(path); return list?.Where(x => Ids.Contains(x.Id)); } #endregion #region Insert /// /// 插入 /// public static long Insert(string path, Model.MonitorDataSetSummary t) { if (string.IsNullOrEmpty(path)) return default; if (t == null) return default; t.Id = SnowflakeIdHelper.NextId(); var fileName = FileHelper.GetFilePath(path); var list = FileHelper.GetFileObject>(fileName); if (list == null) list = new List(); list.Add(t); FileHelper.SaveObjectFile(fileName, list); return t.Id; } /// /// 插入 /// public static long Insert(string path, IEnumerable srcList, Model.MonitorDataSetSummary t) { if (string.IsNullOrEmpty(path)) return default; if (t == null) return default; t.Id = SnowflakeIdHelper.NextId(); var fileName = FileHelper.GetFilePath(path); var list = new List(); if (srcList != null && srcList.Count() > 0) { list.AddRange(srcList); } list.Add(t); FileHelper.SaveObjectFile(fileName, list); return t.Id; } /// /// 插入并返回 /// public static Model.MonitorDataSetSummary InsertR(string path, Model.MonitorDataSetSummary t) { if (string.IsNullOrEmpty(path)) return default; if (t == null) return default; t.Id = SnowflakeIdHelper.NextId(); var fileName = FileHelper.GetFilePath(path); var list = FileHelper.GetFileObject>(fileName); if (list == null) list = new List(); list.Add(t); FileHelper.SaveObjectFile(fileName, list); return t; } /// /// 插入并返回 /// public static Model.MonitorDataSetSummary InsertR(string path, IEnumerable srcList, Model.MonitorDataSetSummary t) { if (string.IsNullOrEmpty(path)) return default; if (t == null) return default; t.Id = SnowflakeIdHelper.NextId(); var fileName = FileHelper.GetFilePath(path); var list = new List(); if (srcList != null && srcList.Count() > 0) { list.AddRange(srcList); } list.Add(t); FileHelper.SaveObjectFile(fileName, list); return t; } /// /// 批量插入 /// public static bool Inserts(string path, IEnumerable list) { if (string.IsNullOrEmpty(path)) return default; if (list == null || list.Count() < 1) return default; var fileName = FileHelper.GetFilePath(path); var srcList = FileHelper.GetFileObject>(fileName); if (srcList == null) srcList = new List(); var list_Ids = list.ToList(); list_Ids.ForEach(x => x.Id = SnowflakeIdHelper.NextId()); srcList.AddRange(list_Ids); FileHelper.SaveObjectFile(fileName, srcList); return true; } /// /// 批量插入 /// public static bool Inserts(string path, IEnumerable srcList, IEnumerable newList) { if (string.IsNullOrEmpty(path)) return default; if (newList == null || newList.Count() < 1) return default; var list = new List(); if (srcList != null && srcList.Count() > 0) list.AddRange(srcList); var newList1 = newList.ToList(); newList1.ForEach(x => x.Id = SnowflakeIdHelper.NextId()); list.AddRange(newList1); var fileName = FileHelper.GetFilePath(path); FileHelper.SaveObjectFile(fileName, list); return true; } /// /// 批量插入并返回 /// public static List InsertRs(string path, IEnumerable list) { if (string.IsNullOrEmpty(path)) return default; if (list == null || list.Count() < 1) return default; var fileName = FileHelper.GetFilePath(path); var srcList = FileHelper.GetFileObject>(fileName); if (srcList == null) srcList = new List(); var newList = list.ToList(); newList.ForEach(x => x.Id = SnowflakeIdHelper.NextId()); srcList.AddRange(newList); FileHelper.SaveObjectFile(fileName, srcList); return newList.ToList(); } /// /// 批量插入并返回 /// public static List InsertRs(string path, IEnumerable srcList, IEnumerable newList) { if (string.IsNullOrEmpty(path)) return default; if (newList == null || newList.Count() < 1) return default; var list = new List(); if (srcList != null && srcList.Count() > 0) list.AddRange(srcList); var newList1 = newList.ToList(); newList1.ForEach(x => x.Id = SnowflakeIdHelper.NextId()); list.AddRange(newList1); var fileName = FileHelper.GetFilePath(path); FileHelper.SaveObjectFile(fileName, list); return newList1.ToList(); } #endregion #region Update /// /// 更新 /// public static bool Update(string path, Model.MonitorDataSetSummary t) { if (string.IsNullOrEmpty(path)) return default; if (t == null) return default; var fileName = FileHelper.GetFilePath(path); var list = FileHelper.GetFileObject>(fileName); if (list == null || list.Count < 1) return default; var src = list.Find(x => x.Id == t.Id); if (src == null) return default; t.Map(src); FileHelper.SaveObjectFile(fileName, list); return true; } /// /// 批量更新 /// public static bool Updates(string path, IEnumerable list) { if (string.IsNullOrEmpty(path)) return default; if (list == null || list.Count() < 1) return default; var fileName = FileHelper.GetFilePath(path); var srcList = FileHelper.GetFileObject>(fileName); if (srcList == null || srcList.Count < 1) return default; foreach (var t in list) { var src = srcList.Find(x => x.Id == t.Id); if (src == null) return default; t.Map(src); } FileHelper.SaveObjectFile(fileName, srcList); return true; } #endregion #region Cover /// /// 覆盖 /// public static long Cover(string path, Model.MonitorDataSetSummary t) { if (string.IsNullOrEmpty(path)) return default; if (t == null) return default; if (t.Id < 1) t.Id = SnowflakeIdHelper.NextId(); var fileName = FileHelper.GetFilePath(path); var list = new List(); list.Add(t); FileHelper.SaveObjectFile(fileName, list); return t.Id; } /// /// 覆盖并返回 /// public static Model.MonitorDataSetSummary CoverR(string path, Model.MonitorDataSetSummary t) { if (string.IsNullOrEmpty(path)) return default; if (t == null) return default; if (t.Id < 1) t.Id = SnowflakeIdHelper.NextId(); var fileName = FileHelper.GetFilePath(path); var list = new List(); list.Add(t); FileHelper.SaveObjectFile(fileName, list); return t; } /// /// 批量覆盖 /// public static bool Covers(string path, IEnumerable list) { if (string.IsNullOrEmpty(path)) return default; if (list == null || list.Count() < 1) return default; var fileName = FileHelper.GetFilePath(path); foreach (var t in list) { if (t.Id < 1) t.Id = SnowflakeIdHelper.NextId(); } FileHelper.SaveObjectFile(fileName, list); return true; } /// /// 批量覆盖并返回 /// public static List CoversR(string path, IEnumerable list) { if (string.IsNullOrEmpty(path)) return default; if (list == null || list.Count() < 1) return default; var fileName = FileHelper.GetFilePath(path); foreach (var t in list) { if (t.Id < 1) t.Id = SnowflakeIdHelper.NextId(); } FileHelper.SaveObjectFile(fileName, list); return list.ToList(); } #endregion #region Delete /// /// 根据 Id删除 /// public static bool DeleteById(string path, long Id) { if (string.IsNullOrEmpty(path)) return false; var fileName = FileHelper.GetFilePath(path); var list = FileHelper.GetFileObject>(fileName); if (list == null || list.Count < 1) return false; var item = list.Find(t => t.Id == Id); if (item == null) return false; list.Remove(item); if (list.Count < 1) File.Delete(fileName); else FileHelper.SaveObjectFile(fileName, list); return true; } /// /// 根据 Id集合删除 /// public static bool DeleteByIds(string path, IEnumerable Ids) { if (string.IsNullOrEmpty(path)) return false; if (Ids == null || Ids.Count() < 1) return false; var fileName = FileHelper.GetFilePath(path); var list = FileHelper.GetFileObject>(fileName); if (list == null || list.Count < 1) return false; list.RemoveAll(x => Ids.Contains(x.Id)); if (list.Count < 1) File.Delete(fileName); else FileHelper.SaveObjectFile(fileName, list); return true; } /// /// 删除全部 /// public static bool DeleteAll(string path) { if (string.IsNullOrEmpty(path)) return false; var fileName = FileHelper.GetFilePath(path); if (File.Exists(fileName)) File.Delete(fileName); return true; } #endregion #region Exist /// /// 是否存在 /// public static bool IsExist(string path) { if (string.IsNullOrEmpty(path)) return false; var fileName = FileHelper.GetFilePath(path); if (!File.Exists(fileName)) return false; var all = GetAll(path); if (all == null || all.Count < 1) return false; return true; } #endregion } }