using System.Collections.Generic;
|
using System.Data;
|
using System.IO;
|
using System.Linq;
|
|
namespace IStation.DAL
|
{
|
/// <summary>
|
/// 监测数据集概要
|
/// </summary>
|
public class MonitorDataSetSummary
|
{
|
#region Path
|
|
/// <summary>
|
/// 查询文件路径
|
/// </summary>
|
public string GetRootFolder(long monitorDataSourcesId)
|
{
|
var monitorDataSourcesFolder = FileHelper.GetMonitorDataSourcesFolder(SettingsD.Project.ID, monitorDataSourcesId);
|
if (!Directory.Exists(monitorDataSourcesFolder))
|
Directory.CreateDirectory(monitorDataSourcesFolder);
|
var monitorDataSetFolder = Path.Combine(monitorDataSourcesFolder, SettingsD.File.MonitorDataFolder);
|
if (!Directory.Exists(monitorDataSetFolder))
|
Directory.CreateDirectory(monitorDataSetFolder);
|
return monitorDataSetFolder;
|
}
|
|
#endregion
|
|
#region Get
|
|
/// <summary>
|
/// 查询全部
|
/// </summary>
|
public List<Model.MonitorDataSetSummary> GetAll(long monitorDataSourcesId)
|
{
|
var path = GetRootFolder(monitorDataSourcesId);
|
var all = FileIdHelper<Model.MonitorDataSetSummary>.GetAll(path);
|
var models = all?.ToList();
|
return models;
|
}
|
|
/// <summary>
|
/// 根据 日期查询全部
|
/// </summary>
|
public List<Model.MonitorDataSetSummary> GetAllByDate(long monitorDataSourcesId, int year, int month)
|
{
|
var all = GetAll(monitorDataSourcesId);
|
var models = all?.Where(x => x.Year == year && x.Month == month).ToList();
|
return models;
|
}
|
|
/// <summary>
|
/// 根据 Id查询
|
/// </summary>
|
public Model.MonitorDataSetSummary 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);
|
}
|
|
/// <summary>
|
/// 根据 Id集合查询
|
/// </summary>
|
public List<Model.MonitorDataSetSummary> GetByIds(long monitorDataSourcesId, IEnumerable<long> 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;
|
}
|
|
/// <summary>
|
/// 根据 监测点信息查询
|
/// </summary>
|
public List<Model.MonitorDataSetSummary> GetByMonitor(long monitorDataSourcesId, long monitorPointId)
|
{
|
if (monitorPointId < 0)
|
return default;
|
var all = GetAll(monitorDataSourcesId);
|
if (all == null || all.Count < 1)
|
return default;
|
var models = all.FindAll(t => t.MonitorPointID == monitorPointId);
|
return models;
|
}
|
|
/// <summary>
|
/// 根据 监测点信息查询
|
/// </summary>
|
public List<Model.MonitorDataSetSummary> GetByMonitor(long monitorDataSourcesId, long monitorPointId, long signalId)
|
{
|
if (monitorPointId < 0)
|
return default;
|
var all = GetByMonitor(monitorDataSourcesId, monitorPointId);
|
if (all == null || all.Count < 1)
|
return default;
|
var models = all.FindAll(t => t.SignalID == signalId);
|
return models;
|
}
|
|
/// <summary>
|
/// 根据 监测点信息查询
|
/// </summary>
|
public List<Model.MonitorDataSetSummary> GetByMonitor(long monitorDataSourcesId, long monitorPointId, int year, int month)
|
{
|
if (monitorPointId < 0)
|
return default;
|
var all = GetAllByDate(monitorDataSourcesId, year, month);
|
if (all == null || all.Count < 1)
|
return default;
|
var models = all.FindAll(t => t.MonitorPointID == monitorPointId);
|
return models;
|
}
|
|
/// <summary>
|
/// 根据 监测点信息查询
|
/// </summary>
|
public Model.MonitorDataSetSummary GetByMonitor(long monitorDataSourcesId, long monitorPointId, long signalId, int year, int month)
|
{
|
if (monitorPointId < 0)
|
return default;
|
var all = GetByMonitor(monitorDataSourcesId, monitorPointId, year, month);
|
if (all == null || all.Count < 1)
|
return default;
|
if (all == null || all.Count < 1)
|
return default;
|
var model = all.Find(t => t.SignalID == signalId);
|
return model;
|
}
|
|
/// <summary>
|
/// 根据 监测点信息查询
|
/// </summary>
|
public List<Model.MonitorDataSetSummary> GetByMonitor(long monitorDataSourcesId, List<long> monitorPointIds, int year, int month)
|
{
|
if (monitorPointIds == null || monitorPointIds.Count < 1)
|
return default;
|
var all = GetAllByDate(monitorDataSourcesId, year, month);
|
if (all == null || all.Count < 1)
|
return default;
|
var models = all.FindAll(t => monitorPointIds.Contains(t.MonitorPointID));
|
return models;
|
}
|
#endregion
|
|
#region Get - Count
|
|
/// <summary>
|
/// 查询监测数据集数量
|
/// </summary>
|
public int GetMonitorDataSetCount(long monitorDataSourcesId)
|
{
|
var all = GetAll(monitorDataSourcesId);
|
if (all == null || all.Count < 1)
|
return default;
|
var count = all.GroupBy(x => new { x.MonitorPointID, x.Year, x.Month }).Count();
|
return count;
|
}
|
|
/// <summary>
|
/// 查询信号记录包数量
|
/// </summary>
|
public int GetSignalRecordPacketCount(long monitorDataSourcesId, long monitorPointId)
|
{
|
var all = GetByMonitor(monitorDataSourcesId, monitorPointId);
|
if (all == null || all.Count < 1)
|
return default;
|
var count = all.GroupBy(x => x.SignalID).Count();
|
return count;
|
}
|
|
/// <summary>
|
/// 查询信号记录包数量
|
/// </summary>
|
public int GetSignalRecordPacketCount(long monitorDataSourcesId, long monitorPointId, int year, int month)
|
{
|
var all = GetByMonitor(monitorDataSourcesId, monitorPointId, year, month);
|
if (all == null || all.Count < 1)
|
return default;
|
var count = all.GroupBy(x => x.SignalID).Count();
|
return count;
|
}
|
|
/// <summary>
|
/// 查询某个信号记录数量
|
/// </summary>
|
public int GetSignalRecordCount(long monitorDataSourcesId, long monitorPointId, long signalId)
|
{
|
var all = GetByMonitor(monitorDataSourcesId, monitorPointId, signalId);
|
if (all == null || all.Count < 1)
|
return default;
|
var count = all.Sum(x => x.Count);
|
return count;
|
}
|
|
/// <summary>
|
/// 查询某个信号记录数量
|
/// </summary>
|
public int GetSignalRecordCount(long monitorDataSourcesId, long monitorPointId, long signalId, int year, int month)
|
{
|
var model = GetByMonitor(monitorDataSourcesId, monitorPointId, signalId, year, month);
|
if (model == null)
|
return default;
|
var count = model.Count;
|
return count;
|
}
|
|
#endregion
|
|
#region Get - YearMonth
|
|
/// <summary>
|
/// 查询年月记录
|
/// </summary>
|
public List<Model.YearMonth> GetYearMonth(long monitorDataSourcesId)
|
{
|
var all = GetAll(monitorDataSourcesId);
|
if (all == null || all.Count < 1)
|
return default;
|
var group = all.GroupBy(x => new { x.Year, x.Month });
|
var models = group.Select(x => new Model.YearMonth() { Year = x.Key.Year, Month = x.Key.Month }).ToList();
|
return models;
|
}
|
|
#endregion
|
|
#region Insert
|
|
/// <summary>
|
/// 插入
|
/// </summary>
|
public long Insert(long monitorDataSourcesId, Model.MonitorDataSetSummary rhs)
|
{
|
if (rhs == null)
|
return default;
|
var path = GetRootFolder(monitorDataSourcesId);
|
return FileIdHelper<Model.MonitorDataSetSummary>.Insert(path, rhs);
|
}
|
|
/// <summary>
|
/// 批量插入
|
/// </summary>
|
public bool Inserts(long monitorDataSourcesId, IEnumerable<Model.MonitorDataSetSummary> list)
|
{
|
if (list == null || list.Count() < 1)
|
return default;
|
var path = GetRootFolder(monitorDataSourcesId);
|
return FileIdHelper<Model.MonitorDataSetSummary>.Inserts(path, list);
|
}
|
|
/// <summary>
|
/// 插入并返回
|
/// </summary>
|
public Model.MonitorDataSetSummary InsertR(long monitorDataSourcesId, Model.MonitorDataSetSummary rhs)
|
{
|
if (rhs == null)
|
return default;
|
var path = GetRootFolder(monitorDataSourcesId);
|
var entities = FileIdHelper<Model.MonitorDataSetSummary>.InsertR(path, rhs);
|
return entities;
|
}
|
|
/// <summary>
|
/// 批量插入并返回
|
/// </summary>
|
public List<Model.MonitorDataSetSummary> InsertRs(long monitorDataSourcesId, IEnumerable<Model.MonitorDataSetSummary> list)
|
{
|
if (list == null || list.Count() < 1)
|
return default;
|
var path = GetRootFolder(monitorDataSourcesId);
|
var models = FileIdHelper<Model.MonitorDataSetSummary>.InsertRs(path, list);
|
return models;
|
}
|
|
#endregion
|
|
#region Update
|
|
/// <summary>
|
/// 更新
|
/// </summary>
|
public bool Update(long monitorDataSourcesId, Model.MonitorDataSetSummary rhs)
|
{
|
if (rhs == null)
|
return default;
|
var path = GetRootFolder(monitorDataSourcesId);
|
return FileIdHelper<Model.MonitorDataSetSummary>.Update(path, rhs);
|
}
|
|
/// <summary>
|
/// 批量更新
|
/// </summary>
|
public bool Updates(long monitorDataSourcesId, IEnumerable<Model.MonitorDataSetSummary> list)
|
{
|
if (list == null || list.Count() < 1)
|
return default;
|
var path = GetRootFolder(monitorDataSourcesId);
|
return FileIdHelper<Model.MonitorDataSetSummary>.Updates(path, list);
|
}
|
|
#endregion
|
|
#region Set
|
|
/// <summary>
|
/// 设置
|
/// </summary>
|
public bool Set(long monitorDataSourcesId, Model.MonitorDataSetSummary monthSummary, int year, int month)
|
{
|
var path = GetRootFolder(monitorDataSourcesId);
|
var monitorRecordMonthSummary = GetByMonitor(monitorDataSourcesId, monthSummary.MonitorPointID, monthSummary.SignalID, year, month);
|
if (monitorRecordMonthSummary == null)
|
{
|
return FileIdHelper<Model.MonitorDataSetSummary>.Insert(path, monthSummary) > 0;
|
}
|
else
|
{
|
return FileIdHelper<Model.MonitorDataSetSummary>.Update(path, monitorRecordMonthSummary);
|
}
|
}
|
|
#endregion
|
|
#region Delete
|
|
/// <summary>
|
/// 根据 Id删除
|
/// </summary>
|
public bool DeleteByID(long monitorDataSourcesId, long Id)
|
{
|
if (Id < 0)
|
return default;
|
var path = GetRootFolder(monitorDataSourcesId);
|
var bol = FileIdHelper<Model.MonitorDataSetSummary>.DeleteByID(path, Id);
|
return bol;
|
}
|
|
/// <summary>
|
/// 根据 Id集合删除
|
/// </summary>
|
public bool DeleteByIds(long monitorDataSourcesId, IEnumerable<long> Ids)
|
{
|
if (Ids == null || Ids.Count() < 1)
|
return default;
|
var path = GetRootFolder(monitorDataSourcesId);
|
var bol = FileIdHelper<Model.MonitorDataSetSummary>.DeleteByIds(path, Ids);
|
return bol;
|
}
|
|
/// <summary>
|
/// 删除
|
/// </summary>
|
public bool Delete(long monitorDataSourcesId, Model.MonitorDataSetSummary rhs)
|
{
|
if (rhs == null)
|
return default;
|
var path = GetRootFolder(monitorDataSourcesId);
|
var bol = FileIdHelper<Model.MonitorDataSetSummary>.DeleteByID(path, rhs.ID);
|
return bol;
|
}
|
|
/// <summary>
|
/// 批量删除
|
/// </summary>
|
public bool Deletes(long monitorDataSourcesId, IEnumerable<Model.MonitorDataSetSummary> list)
|
{
|
if (list == null || list.Count() < 1)
|
return true;
|
var path = GetRootFolder(monitorDataSourcesId);
|
var Ids = list.Select(x => x.ID).ToList();
|
var bol = FileIdHelper<Model.MonitorDataSetSummary>.DeleteByIds(path, Ids);
|
return bol;
|
}
|
|
/// <summary>
|
/// 删除全部
|
/// </summary>
|
public bool DeleteAll(long monitorDataSourcesId)
|
{
|
var path = GetRootFolder(monitorDataSourcesId);
|
var bol = FileIdHelper<Model.MonitorDataSetSummary>.DeleteAll(path);
|
return bol;
|
}
|
|
#endregion
|
|
#region Exist
|
|
/// <summary>
|
/// 是否存在
|
/// </summary>
|
public bool IsExist(long monitorDataSourcesId)
|
{
|
var path = GetRootFolder(monitorDataSourcesId);
|
return FileIdHelper<Model.MonitorDataSetSummary>.IsExist(path);
|
}
|
|
#endregion
|
|
}
|
}
|