20230201_145_upperpc/InSituLaboratory/ViewModels/Pages/DashboardNewViewModel.cs
2024-10-31 08:29:52 +08:00

121 lines
5.3 KiB
C#

using InSituLaboratory.Entities;
using InSituLaboratory.IService;
using InSituLaboratory.Models;
using Prism.Commands;
using Prism.Regions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace InSituLaboratory.ViewModels.Pages
{
public class DashboardNewViewModel : ViewModelBase
{
public SysStatusModel SysStatusModel { get; set; } = new SysStatusModel();
public CurrentEquipmentModel CurrentWorkEquipment { get; set; } = new CurrentEquipmentModel();//当前工作设备
public CurrentEquipmentModel currentFaultyEquipment { get; set; } = new CurrentEquipmentModel();//当前故障设备
public DelegateCommand<object> ReadCommand { get; set; }
ISysStatusService _sysStatusService;
public DashboardNewViewModel(IRegionManager regionManager, ISysStatusService isysStatusService) : base(regionManager)
{
PageTitle = "数据中心";
IsCanClose = false;
_sysStatusService = isysStatusService;
ReadCommand = new DelegateCommand<object>(DoRead);
this.Refresh();
}
public override void Refresh()
{
var sysStatuslist = _sysStatusService.GetSysStauts().ToList();
var CurrentWorklist = _sysStatusService.GetCurrentWorkEquipment().ToList();
var currentFaultylist = _sysStatusService.GetCurrentFaultyEquipment().ToList();
if (sysStatuslist.Count() != 0)
{
var data = _sysStatusService.GetSysStauts().FirstOrDefault();
SysStatusModel.PackagingTime = data.PackagingTime;
SysStatusModel.SamplingTime = data.SamplingTime;
SysStatusModel.Voltage48 = data.Voltage48;
SysStatusModel.Current48 = data.Current48;
SysStatusModel.BaseStation48VLeakageCS = data.BaseStation48VLeakageCS;
SysStatusModel.Batterz48VLeakageCS = data.Batterz48VLeakageCS;
SysStatusModel.ICLLeakageCS = data.ICLLeakageCS;
SysStatusModel.IComputerLeakageCS = data.IComputerLeakageCS;
SysStatusModel.TemperatureStaus1 = data.TemperatureStaus1;
SysStatusModel.TemperatureStaus2 = data.TemperatureStaus2;
SysStatusModel.HumidityStaus1 = data.HumidityStaus1;
SysStatusModel.HumidityStaus2 = data.HumidityStaus2;
SysStatusModel.LeakageStaus1 = data.LeakageStaus1;
SysStatusModel.LeakageStaus2 = data.LeakageStaus2;
SysStatusModel.InternalPressure1 = data.InternalPressure1;
SysStatusModel.InternalPressure2 = data.InternalPressure2;
SysStatusModel.TimeSeriesGroupNumber = data.TimeSeriesGroupNumber;
SysStatusModel.GroupNumberStatus = data.GroupNumberStatus;
}
if (CurrentWorklist.Count() != 0)
{
var data = _sysStatusService.GetCurrentWorkEquipment().First();
CurrentWorkEquipment.Chromatograph_MEMS = data.Chromatograph_MEMS;
CurrentWorkEquipment.MassSpectrometer_MEMS = data.MassSpectrometer_MEMS;
CurrentWorkEquipment.ColorMassSpectrometer = data.ColorMassSpectrometer;
CurrentWorkEquipment.CH4Analyzer = data.CH4Analyzer;
CurrentWorkEquipment.CO2Analyzer = data.CO2Analyzer;
CurrentWorkEquipment.ParticleAnalyzer = data.ParticleAnalyzer;
CurrentWorkEquipment.Sequencer = data.Sequencer;
}
if (currentFaultylist.Count() != 0)
{
var data = _sysStatusService.GetCurrentFaultyEquipment().First();
currentFaultyEquipment.Chromatograph_MEMS = data.Chromatograph_MEMS;
currentFaultyEquipment.MassSpectrometer_MEMS = data.MassSpectrometer_MEMS;
currentFaultyEquipment.ColorMassSpectrometer = data.ColorMassSpectrometer;
currentFaultyEquipment.CH4Analyzer = data.CH4Analyzer;
currentFaultyEquipment.CO2Analyzer = data.CO2Analyzer;
currentFaultyEquipment.ParticleAnalyzer = data.ParticleAnalyzer;
currentFaultyEquipment.Sequencer = data.Sequencer;
}
}
/// <summary>
/// 读取文本文档
/// </summary>
/// <param name="o"></param>
public void DoRead(object o)
{
string? info = null;
string? txtContent = null;
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Title = "选择文件";
openFileDialog.Multiselect = false;//选择多个文件
openFileDialog.RestoreDirectory = true;//跟踪上次打开的文件的目录
//openFileDialog.Filter = "所有文件(*.*)|*";
openFileDialog.Filter = "Text files(*.txt) | *.txt";
openFileDialog.CheckFileExists = true;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
info = openFileDialog.FileName;
}
if (!string.IsNullOrEmpty(info))
{
//逐行读取文件,返回数组
txtContent = tools.ReadTXT_StreamReader(info);
}
}
}
}