using System.Collections.Generic;
|
using System.Data;
|
using System.Linq;
|
|
namespace IStation.DAL
|
{
|
/// <summary>
|
/// 监测数据集概要
|
/// </summary>
|
public class MonitorDataSetSummary
|
{
|
#region Path
|
|
/// <summary>
|
/// 查询文件路径
|
/// </summary>
|
private string GetFolderPath()
|
{
|
return LocalFileConfig.GetMonitorDataFolder();
|
}
|
|
#endregion
|
|
#region Get
|
|
/// <summary>
|
/// 查询全部
|
/// </summary>
|
public List<Model.MonitorDataSetSummary> GetAll()
|
{
|
var path = GetFolderPath();
|
var all = MonitorDataSetSummaryHelper.GetAll(path);
|
var models = all?.ToList();
|
return models;
|
}
|
|
/// <summary>
|
/// 根据 日期查询全部
|
/// </summary>
|
public List<Model.MonitorDataSetSummary> GetAllByDate(int year, int month)
|
{
|
var all = GetAll();
|
var models = all?.Where(x => x.Year == year && x.Month == month).ToList();
|
return models;
|
}
|
|
/// <summary>
|
/// 根据 Id查询
|
/// </summary>
|
public Model.MonitorDataSetSummary GetById(long Id)
|
{
|
if (Id < 1)
|
return default;
|
var all = GetAll();
|
var models = all?.ToList();
|
return models?.Find(t => t.Id == Id);
|
}
|
|
/// <summary>
|
/// 根据 Id集合查询
|
/// </summary>
|
public List<Model.MonitorDataSetSummary> GetByIds(IEnumerable<long> Ids)
|
{
|
if (Ids == null || Ids.Count() < 1)
|
return default;
|
var all = GetAll();
|
var models = all?.Where(x => Ids.Contains(x.Id)).ToList();
|
return models;
|
}
|
|
/// <summary>
|
/// 根据 监测点信息查询
|
/// </summary>
|
public List<Model.MonitorDataSetSummary> GetByMonitor(long monitorPointId)
|
{
|
if (monitorPointId < 0)
|
return default;
|
var all = GetAll();
|
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 monitorPointId, long signalId)
|
{
|
if (monitorPointId < 0)
|
return default;
|
var all = GetByMonitor(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 monitorPointId, int year, int month)
|
{
|
if (monitorPointId < 0)
|
return default;
|
var all = GetAllByDate(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 monitorPointId, long signalId, int year, int month)
|
{
|
if (monitorPointId < 0)
|
return default;
|
var all = GetByMonitor(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(List<long> monitorPointIds, int year, int month)
|
{
|
if (monitorPointIds == null || monitorPointIds.Count < 1)
|
return default;
|
var all = GetAllByDate(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()
|
{
|
var all = GetAll();
|
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 monitorPointId)
|
{
|
var all = GetByMonitor(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 monitorPointId, int year, int month)
|
{
|
var all = GetByMonitor(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 monitorPointId, long signalId)
|
{
|
var all = GetByMonitor(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 monitorPointId, long signalId, int year, int month)
|
{
|
var model = GetByMonitor(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()
|
{
|
var all = GetAll();
|
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(Model.MonitorDataSetSummary rhs)
|
{
|
if (rhs == null)
|
return default;
|
var path = GetFolderPath();
|
return MonitorDataSetSummaryHelper.Insert(path, rhs);
|
}
|
|
/// <summary>
|
/// 批量插入
|
/// </summary>
|
public bool Inserts(IEnumerable<Model.MonitorDataSetSummary> list)
|
{
|
if (list == null || list.Count() < 1)
|
return default;
|
var path = GetFolderPath();
|
return MonitorDataSetSummaryHelper.Inserts(path, list);
|
}
|
|
/// <summary>
|
/// 插入并返回
|
/// </summary>
|
public Model.MonitorDataSetSummary InsertR(Model.MonitorDataSetSummary rhs)
|
{
|
if (rhs == null)
|
return default;
|
var path = GetFolderPath();
|
var entities = MonitorDataSetSummaryHelper.InsertR(path, rhs);
|
return entities;
|
}
|
|
/// <summary>
|
/// 批量插入并返回
|
/// </summary>
|
public List<Model.MonitorDataSetSummary> InsertRs(IEnumerable<Model.MonitorDataSetSummary> list)
|
{
|
if (list == null || list.Count() < 1)
|
return default;
|
var path = GetFolderPath();
|
var models = MonitorDataSetSummaryHelper.InsertRs(path, list);
|
return models;
|
}
|
|
#endregion
|
|
#region Update
|
|
/// <summary>
|
/// 更新
|
/// </summary>
|
public bool Update(Model.MonitorDataSetSummary rhs)
|
{
|
if (rhs == null)
|
return default;
|
var path = GetFolderPath();
|
return MonitorDataSetSummaryHelper.Update(path, rhs);
|
}
|
|
/// <summary>
|
/// 批量更新
|
/// </summary>
|
public bool Updates(IEnumerable<Model.MonitorDataSetSummary> list)
|
{
|
if (list == null || list.Count() < 1)
|
return default;
|
var path = GetFolderPath();
|
return MonitorDataSetSummaryHelper.Updates(path, list);
|
}
|
|
#endregion
|
|
#region Set
|
|
/// <summary>
|
/// 设置
|
/// </summary>
|
public bool Set(Model.MonitorDataSetSummary monthSummary, int year, int month)
|
{
|
var path = GetFolderPath();
|
var monitorRecordMonthSummary = GetByMonitor(monthSummary.MonitorPointID, monthSummary.SignalID, year, month);
|
if (monitorRecordMonthSummary == null)
|
{
|
return MonitorDataSetSummaryHelper.Insert(path, monthSummary) > 0;
|
}
|
else
|
{
|
return MonitorDataSetSummaryHelper.Update(path, monitorRecordMonthSummary);
|
}
|
}
|
|
#endregion
|
|
#region Delete
|
|
/// <summary>
|
/// 根据 Id删除
|
/// </summary>
|
public bool DeleteById(long Id)
|
{
|
if (Id < 0)
|
return default;
|
var path = GetFolderPath();
|
var bol = MonitorDataSetSummaryHelper.DeleteById(path, Id);
|
return bol;
|
}
|
|
/// <summary>
|
/// 根据 Id集合删除
|
/// </summary>
|
public bool DeleteByIds(IEnumerable<long> Ids)
|
{
|
if (Ids == null || Ids.Count() < 1)
|
return default;
|
var path = GetFolderPath();
|
var bol = MonitorDataSetSummaryHelper.DeleteByIds(path, Ids);
|
return bol;
|
}
|
|
/// <summary>
|
/// 删除
|
/// </summary>
|
public bool Delete(Model.MonitorDataSetSummary rhs)
|
{
|
if (rhs == null)
|
return default;
|
var path = GetFolderPath();
|
var bol = MonitorDataSetSummaryHelper.DeleteById(path, rhs.Id);
|
return bol;
|
}
|
|
/// <summary>
|
/// 批量删除
|
/// </summary>
|
public bool Deletes(IEnumerable<Model.MonitorDataSetSummary> list)
|
{
|
if (list == null || list.Count() < 1)
|
return default;
|
var path = GetFolderPath();
|
var Ids = list.Select(x => x.Id).ToList();
|
var bol = MonitorDataSetSummaryHelper.DeleteByIds(path, Ids);
|
return bol;
|
}
|
|
/// <summary>
|
/// 删除全部
|
/// </summary>
|
public bool DeleteAll()
|
{
|
var path = GetFolderPath();
|
var bol = MonitorDataSetSummaryHelper.DeleteAll(path);
|
return bol;
|
}
|
|
#endregion
|
|
#region Exist
|
|
/// <summary>
|
/// 是否存在
|
/// </summary>
|
public bool IsExist()
|
{
|
var path = GetFolderPath();
|
return MonitorDataSetSummaryHelper.IsExist(path);
|
}
|
|
#endregion
|
|
}
|
}
|