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
}
}