using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace IStation.WinFrmUI.Monitor
{
///
/// 常规监测数据导入辅助类
///
public class MonitorDataImportHelper
{
/* public static bool Import()
{
var monitorPoints = new BLL.MonitorPoint().GetAllExSignalWithSignalType();
if (monitorPoints == null || !monitorPoints.Any())
return false;
var importMappers = new List();
foreach (var monitorPoint in monitorPoints)
{
if (string.IsNullOrEmpty(monitorPoint.TagName))
continue;
var mapper = new DataSourcesMapper
{
SysID = monitorPoint.MonitorPointID,
SignID = monitorPoint.TagName
};
if (monitorPoint.UnitType == Unit.eUnitType.压力)
{
if (monitorPoint.Flags != null)
{
if (monitorPoint.Flags.Contains(IStation.Flags.出口))
{
mapper.Coefficients = new Coefficients();
mapper.Coefficients.A = 0.001; //kpa>map
}
else
{
mapper.Coefficients = new Coefficients();
mapper.Coefficients.A = 0.00981;//m>map
}
}
}
importMappers.Add(mapper);
}
return Import(importMappers);
}
*/
///
/// 导入
///
public static bool Import(long monitorDataSourcesId, List mappers)
{
if (mappers == null || mappers.Count < 1)
return false;
var monitorPointIds = mappers.Select(x => x.SysId).Distinct().ToList();
var monitorPoints = new BLL.MonitorPoint().GetExSignalWithSignalTypeByIds(monitorPointIds);
if (monitorPoints == null || monitorPoints.Count < 1)
return false;
var fileDlg = new OpenFileDialog();
fileDlg.Title = "历史数据导入";
fileDlg.Filter = "CSV文档|*.csv";
fileDlg.Multiselect = true;
fileDlg.AutoUpgradeEnabled = true;
if (fileDlg.ShowDialog() != DialogResult.OK)
{
return false;
}
var fileNames = fileDlg.FileNames?.ToList();
if (fileNames == null || fileNames.Count < 1)
return false;
var dockingList = new List();
foreach (var monitor in monitorPoints)
{
var mapper = mappers.Find(x => x.SysId == monitor.MonitorPointID);
var dockingModel = new MonitorDataImportModel();
dockingModel.MonitorPointID = monitor.MonitorPointID;
dockingModel.SignalId = monitor.SignalID;
dockingModel.TagName = mapper.SignId;
dockingModel.FormulaType = mapper.FormulaType;
dockingModel.FormulaParas = mapper.FormulaParas;
dockingList.Add(dockingModel);
}
var waitDlg = new WaitMonitorDataImportDlg();
waitDlg.SetBindingData(monitorDataSourcesId, dockingList, fileNames);
if (waitDlg.ShowDialog() != DialogResult.OK)
return false;
return true;
}
}
}