using System;
using System.Text;
using System.Collections.Generic;
using System.Data;
using System.Runtime.Serialization;
using System.Linq;
namespace IStation.DAL.LocalFile
{
///
/// 监测数据集概要
///
public class MonitorDataSetSummary
{
#region Path
///
/// 获取文件路径
///
private string GetFolderPath(long projectId, long sceneId)
{
return MonitorDataSetConfig.GetMonitorDataFolder(projectId, sceneId);
}
#endregion
#region Query
///
/// 查询全部
///
public List QueryAll(long projectId, long sceneId)
{
if (projectId < 0)
return default;
if (sceneId < 0)
return default;
var path = GetFolderPath(projectId, sceneId);
var all = MonitorDataSetSummaryHelper.QueryAll(path);
var models = all?.ToList();
return models;
}
///
/// 通过日期查询全部
///
public List QueryAllByDate(long projectId, long sceneId, int year, int month)
{
if (projectId < 0)
return default;
if (sceneId < 0)
return default;
var all = QueryAll(projectId, sceneId);
var models = all?.Where(x => x.Year == year && x.Month == month).ToList();
return models;
}
///
/// 根据Id查询
///
public Model.MonitorDataSetSummary QueryById(long projectId, long sceneId, long id)
{
if (projectId < 0)
return default;
if (id < 0)
return default;
var all = QueryAll(projectId, sceneId);
var models = all?.ToList();
return models?.Find(t => t.Id == id);
}
///
/// 通过Id集合查询
///
public List QueryByIds(long projectId, long sceneId, IEnumerable ids)
{
if (projectId < 0)
return default;
if (ids == null || ids.Count() < 1)
return default;
var all = QueryAll(projectId, sceneId);
var models = all?.Where(x => ids.Contains(x.Id)).ToList();
return models;
}
///
/// 通过监测点信息查询
///
public List QueryByMonitor(long projectId, long sceneId, long monitorPointId)
{
if (projectId < 0)
return default;
if (sceneId < 0)
return default;
if (monitorPointId < 0)
return default;
var all = QueryAll(projectId, sceneId);
if (all == null || all.Count < 1)
return default;
var models = all.FindAll(t => t.MonitorPointId == monitorPointId);
return models;
}
///
/// 通过监测点信息查询
///
public List QueryByMonitor(long projectId, long sceneId, long monitorPointId, long signalId)
{
if (projectId < 0)
return default;
if (sceneId < 0)
return default;
if (monitorPointId < 0)
return default;
var all = QueryByMonitor(projectId, sceneId, monitorPointId);
if (all == null || all.Count < 1)
return default;
var models = all.FindAll(t => t.SignalId == signalId);
return models;
}
///
/// 通过监测点信息查询
///
public List QueryByMonitor(long projectId, long sceneId, long monitorPointId, int year, int month)
{
if (projectId < 0)
return default;
if (sceneId < 0)
return default;
if (monitorPointId < 0)
return default;
var all = QueryAllByDate(projectId, sceneId, year, month);
if (all == null || all.Count < 1)
return default;
var models = all.FindAll(t => t.MonitorPointId == monitorPointId);
return models;
}
///
/// 通过监测点信息查询
///
public Model.MonitorDataSetSummary QueryByMonitor(long projectId, long sceneId, long monitorPointId, long signalId, int year, int month)
{
if (projectId < 0)
return default;
if (sceneId < 0)
return default;
if (monitorPointId < 0)
return default;
var all = QueryByMonitor(projectId, sceneId, 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;
}
///
/// 通过监测点信息查询
///
public List QueryByMonitor(long projectId, long sceneId, List monitorPointIds, int year, int month)
{
if (projectId < 0)
return default;
if (sceneId < 0)
return default;
if (monitorPointIds == null || monitorPointIds.Count < 1)
return default;
var all = QueryAllByDate(projectId, sceneId, year, month);
if (all == null || all.Count < 1)
return default;
var models = all.FindAll(t => monitorPointIds.Contains(t.MonitorPointId));
return models;
}
#endregion
#region Query - Count
///
/// 查询监测数据集数量
///
public int QueryMonitorDataSetCount(long projectId, long sceneId)
{
var all = QueryAll(projectId, sceneId);
if (all == null || all.Count < 1)
return default;
var count = all.GroupBy(x => new { x.MonitorPointId, x.Year, x.Month }).Count();
return count;
}
///
/// 获取信号记录包数量
///
public int QuerySignalRecordPacketCount(long projectId, long sceneId, long monitorPointId)
{
var all = QueryByMonitor(projectId, sceneId, monitorPointId);
if (all == null || all.Count < 1)
return default;
var count = all.GroupBy(x=>x.SignalId).Count();
return count;
}
///
/// 获取信号记录包数量
///
public int QuerySignalRecordPacketCount(long projectId, long sceneId, long monitorPointId, int year, int month)
{
var all = QueryByMonitor(projectId, sceneId, monitorPointId, year, month);
if (all == null || all.Count < 1)
return default;
var count = all.GroupBy(x => x.SignalId).Count();
return count;
}
///
/// 获取某个信号记录数量
///
public int QuerySignalRecordCount(long projectId, long sceneId, long monitorPointId, long signalId)
{
var all = QueryByMonitor(projectId, sceneId, monitorPointId, signalId);
if (all == null || all.Count < 1)
return default;
var count = all.Sum(x => x.Count);
return count;
}
///
/// 获取某个信号记录数量
///
public int QuerySignalRecordCount(long projectId, long sceneId, long monitorPointId, long signalId, int year, int month)
{
var model = QueryByMonitor(projectId, sceneId, monitorPointId, signalId, year, month);
if (model == null)
return default;
var count = model.Count;
return count;
}
#endregion
#region Query - YearMonth
///
/// 查询年月记录
///
public List QueryYearMonth(long projectId, long sceneId)
{
var all = QueryAll(projectId, sceneId);
if (all == null || all.Count < 1)
return default;
var group = all.GroupBy(x => new { x.Year, x.Month, x.MonitorPointId });
var models = group.Select(x => new Model.YearMonth() { Year = x.Key.Year, Month = x.Key.Month }).ToList();
return models;
}
#endregion
#region Insert
///
/// 插入
///
public long Insert(long projectId, long sceneId, Model.MonitorDataSetSummary rhs)
{
if (projectId < 0)
return default;
if (rhs == null)
return default;
var path = GetFolderPath(projectId, sceneId);
return MonitorDataSetSummaryHelper.Insert(path, rhs);
}
///
/// 批量插入
///
public bool Inserts(long projectId, long sceneId, IEnumerable list)
{
if (projectId < 0)
return default;
if (list == null || list.Count() < 1)
return default;
var path = GetFolderPath(projectId, sceneId);
return MonitorDataSetSummaryHelper.Inserts(path, list);
}
///
/// 插入并返回
///
public Model.MonitorDataSetSummary InsertR(long projectId, long sceneId, Model.MonitorDataSetSummary rhs)
{
if (projectId < 0)
return default;
if (rhs == null)
return default;
var path = GetFolderPath(projectId, sceneId);
var entities = MonitorDataSetSummaryHelper.InsertR(path, rhs);
return entities;
}
///
/// 批量插入并返回
///
public List InsertRs(long projectId, long sceneId, IEnumerable list)
{
if (projectId < 0)
return default;
if (list == null || list.Count() < 1)
return default;
var path = GetFolderPath(projectId, sceneId);
var models = MonitorDataSetSummaryHelper.InsertRs(path, list);
return models;
}
#endregion
#region Update
///
/// 更新
///
public bool Update(long projectId, long sceneId, Model.MonitorDataSetSummary rhs)
{
if (projectId < 0)
return default;
if (rhs == null)
return default;
var path = GetFolderPath(projectId, sceneId);
return MonitorDataSetSummaryHelper.Update(path, rhs);
}
///
/// 批量更新
///
public bool Updates(long projectId, long sceneId, IEnumerable list)
{
if (projectId < 0)
return default;
if (list == null || list.Count() < 1)
return default;
var path = GetFolderPath(projectId, sceneId);
return MonitorDataSetSummaryHelper.Updates(path, list);
}
#endregion
#region Set
///
/// 设置
///
public bool Set(long projectId, long sceneId, Model.MonitorDataSetSummary monthSummary, int year, int month)
{
var path = GetFolderPath(projectId, sceneId);
var monitorRecordMonthSummary = QueryByMonitor(projectId, sceneId, monthSummary.MonitorPointId, monthSummary.SignalId, year, month);
if (monitorRecordMonthSummary == null)
{
return MonitorDataSetSummaryHelper.Insert(path, monthSummary) > 0;
}
else
{
return MonitorDataSetSummaryHelper.Update(path, monitorRecordMonthSummary);
}
}
#endregion
#region Delete
///
/// 根据Id删除
///
public bool DeleteById(long projectId, long sceneId, long id)
{
if (projectId < 0)
return default;
if (id < 0)
return default;
var path = GetFolderPath(projectId, sceneId);
var bol = MonitorDataSetSummaryHelper.DeleteById(path, id);
return bol;
}
///
/// 根据Id集合删除
///
public bool DeleteByIds(long projectId, long sceneId, IEnumerable ids)
{
if (projectId < 0)
return default;
if (ids == null || ids.Count() < 1)
return default;
var path = GetFolderPath(projectId, sceneId);
var bol = MonitorDataSetSummaryHelper.DeleteByIds(path, ids);
return bol;
}
///
/// 删除
///
public bool Delete(long projectId, long sceneId, Model.MonitorDataSetSummary rhs)
{
if (projectId < 0)
return default;
if (rhs == null)
return default;
var path = GetFolderPath(projectId, sceneId);
var bol = MonitorDataSetSummaryHelper.DeleteById(path, rhs.Id);
return bol;
}
///
/// 批量删除
///
public bool Deletes(long projectId, long sceneId, IEnumerable list)
{
if (projectId < 0)
return default;
if (list == null || list.Count() < 1)
return default;
var path = GetFolderPath(projectId, sceneId);
var ids = list.Select(x => x.Id).ToList();
var bol = MonitorDataSetSummaryHelper.DeleteByIds(path, ids);
return bol;
}
///
/// 删除全部
///
public bool DeleteAll(long projectId, long sceneId)
{
if (projectId < 0)
return default;
var path = GetFolderPath(projectId, sceneId);
var bol = MonitorDataSetSummaryHelper.DeleteAll(path);
return bol;
}
#endregion
#region Exist
///
/// 是否存在
///
public bool IsExist(long projectId, long sceneId)
{
var path = GetFolderPath(projectId, sceneId);
return MonitorDataSetSummaryHelper.IsExist(path);
}
#endregion
}
}