20230201_145_upperpc/InSituLaboratory/ViewModels/Pages/Dialogs/ModifySequentialViewModel.cs

158 lines
5.9 KiB
C#
Raw Normal View History

2024-04-09 08:17:44 +00:00
using InSituLaboratory.Entities;
using InSituLaboratory.IService;
using InSituLaboratory.Models;
using InSituLaboratory.Service;
using Microsoft.VisualBasic.ApplicationServices;
2024-03-27 13:49:16 +00:00
using Prism.Services.Dialogs;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
2024-04-09 08:17:44 +00:00
using System.Windows;
2024-03-27 13:49:16 +00:00
namespace InSituLaboratory.ViewModels.Pages.Dialogs
{
2024-04-09 08:17:44 +00:00
/// <summary>
/// 新增或者增加时序
/// </summary>
public class ModifySequentialViewModel : DialogViewModelBase
2024-03-27 13:49:16 +00:00
{
2024-04-09 08:17:44 +00:00
public List<SysDevice> DeviceNodes { get; set; } = new List<SysDevice>();
public DateTime? startTime { get; set; }
public DateTime? endTime { get; set; }
public int Number { get; set; }
public string SensorID { get; set; }
public string DurationTime { get; set; }
public string kind { get; set; }
ISysSequentialService _sequentialService;
IDeviceSvice _deviceSvice;
public ModifySequentialViewModel(ISysSequentialService sequentialService, IDeviceSvice deviceSvice)
2024-03-27 13:49:16 +00:00
{
2024-04-09 08:17:44 +00:00
_sequentialService = sequentialService;
_deviceSvice = deviceSvice;
2024-03-27 13:49:16 +00:00
}
public override void OnDialogOpened(IDialogParameters parameters)
{
2024-04-09 08:17:44 +00:00
var SequentialDetail = parameters.GetValue<SysSequentialDetails>("model");
startTime = parameters.GetValue<DateTime>("sequentialStartTime");
endTime = parameters.GetValue<DateTime>("sequentialEndTime");
kind = parameters.GetValue<string>("kind");
if (SequentialDetail == null)
{
this.Title = "新增时序配置";
}
else
{
this.Title = "编辑时序配置";
var su = _sequentialService.Find<SysSequentialDetails>(SequentialDetail.Number);
Number = su.Number;
SensorID = su.SensorID;
DurationTime = su.DurationTime;
}
DeviceNodes = _deviceSvice.GetDevices().ToList();
2024-03-27 13:49:16 +00:00
}
public override void DoSave()
{
2024-04-09 08:17:44 +00:00
try
{
var data = _sequentialService.GetSequentials(kind).ToList();
//保存时 首次去查询 data == null 说明数据库中无数据 为第一次插入
if (data.Count() == 0)
{
_sequentialService.Insert(new SysSequential
{
StartTime = startTime,
EndTime = endTime,
CreateTime = DateTime.Now,
Sequential = kind,
IsDelete = 0
});
var Squential = _sequentialService.Query<SysSequential>(m => m.Sequential == kind).OrderByDescending(n => n.CreateTime).First();
_sequentialService.Insert(new SysSequentialDetails
{
SysSquentialID = Squential.Number,
SensorID = SensorID,
DurationTime = DurationTime,
CreateTime = DateTime.Now,
Sequential = kind,
IsDelete = 0
});
}
else
{
//判断查询的当前时序开始和结束时间与打开的窗口传值是否有变化
//无变化说明是在当前时序下新增传感器运行时间配置
var data1 = _sequentialService.GetSequentials(kind).First();
if (data1.StartTime == startTime && data1.EndTime == endTime)
{
//新增传感器配置
if (Number == 0)
{
_sequentialService.Insert(new SysSequentialDetails
{
SysSquentialID = data1.Number,
SensorID = SensorID,
DurationTime = DurationTime,
CreateTime = DateTime.Now,
Sequential = kind,
IsDelete = 0
});
}
else
{
//修改传感器配置
var ssd = _sequentialService.Find<SysSequentialDetails>(Number);
ssd.SensorID = SensorID;
ssd.DurationTime = DurationTime;
_sequentialService.Update(ssd);
}
}
else
{
//新的时序
_sequentialService.Insert(new SysSequential
{
StartTime = startTime,
EndTime = endTime,
CreateTime = DateTime.Now,
Sequential = kind,
IsDelete = 0
});
var Squential = _sequentialService.Query<SysSequential>(m => m.Sequential == kind).OrderByDescending(n => n.CreateTime).First();
_sequentialService.Insert(new SysSequentialDetails
{
SysSquentialID = Squential.Number,
SensorID = SensorID,
DurationTime = DurationTime,
CreateTime = DateTime.Now,
Sequential = kind,
IsDelete = 0
});
}
}
base.DoSave();
2024-03-27 13:49:16 +00:00
2024-04-09 08:17:44 +00:00
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "提示");
}
2024-03-27 13:49:16 +00:00
}
}
}