|
@@ -0,0 +1,526 @@
|
|
|
+using AutoMapper;
|
|
|
+using BizService;
|
|
|
+using Model.Dto;
|
|
|
+using Model.Entities;
|
|
|
+using Newtonsoft.Json;
|
|
|
+using NLog;
|
|
|
+using PLCTool.Common;
|
|
|
+using Prism.Commands;
|
|
|
+using Prism.Events;
|
|
|
+using Prism.Mvvm;
|
|
|
+using Prism.Services.Dialogs;
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Collections.ObjectModel;
|
|
|
+using System.Linq;
|
|
|
+using System.Text;
|
|
|
+using System.Threading.Tasks;
|
|
|
+using System.Windows;
|
|
|
+
|
|
|
+namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
+{
|
|
|
+
|
|
|
+ public class AutoTestViewModel : BindableBase, IDialogAware
|
|
|
+ {
|
|
|
+ private readonly IDialogService _dialog;
|
|
|
+ private readonly IEventAggregator _aggregator;
|
|
|
+ private readonly IOptionConfigService _optionConfigService;
|
|
|
+ private readonly IBasicPlcTestSchemeService _basicPlcTestSchemeService;
|
|
|
+ private readonly IBasicPlcTestSchemeDtlService _basicPlcTestSchemeDtlService;
|
|
|
+ private readonly IMapper _mapper;
|
|
|
+ private readonly ILogger _logger;
|
|
|
+ private List<OptionConfigDto> _optionConfigs;
|
|
|
+ public AutoTestViewModel(IDialogService dialog, IEventAggregator aggregator, IOptionConfigService optionConfigService, IBasicPlcTestSchemeService basicPlcTestSchemeService, IBasicPlcTestSchemeDtlService basicPlcTestSchemeDtlService, IMapper mapper)
|
|
|
+ {
|
|
|
+ _dialog = dialog;
|
|
|
+ _aggregator = aggregator;
|
|
|
+ _optionConfigService = optionConfigService;
|
|
|
+ _basicPlcTestSchemeService = basicPlcTestSchemeService;
|
|
|
+ _basicPlcTestSchemeDtlService = basicPlcTestSchemeDtlService;
|
|
|
+ _mapper = mapper;
|
|
|
+ //_logger = logger;
|
|
|
+ CloseCommand = new DelegateCommand(Close);
|
|
|
+
|
|
|
+ ResetCommand = new DelegateCommand<string>(ResetMethod);
|
|
|
+
|
|
|
+
|
|
|
+ BeforeConList = new ObservableCollection<BasPlcItemConfigDto>();
|
|
|
+ InConList = new ObservableCollection<BasPlcItemConfigDto>();
|
|
|
+ OutConList = new ObservableCollection<BasPlcItemConfigDto>();
|
|
|
+ GetConfigOption();
|
|
|
+ }
|
|
|
+
|
|
|
+ #region idialog接口实现
|
|
|
+ public string Title { set; get; } = "自动测试";
|
|
|
+
|
|
|
+ public event Action<IDialogResult> RequestClose;
|
|
|
+
|
|
|
+ public bool CanCloseDialog()
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void OnDialogClosed()
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public void OnDialogOpened(IDialogParameters parameters)
|
|
|
+ {
|
|
|
+ //编辑
|
|
|
+ var getMsg = parameters.GetValues<long>("Key");
|
|
|
+ ///值不为空,表示修改
|
|
|
+ if (getMsg != null)
|
|
|
+ {
|
|
|
+ foreach (var item in getMsg)
|
|
|
+ {
|
|
|
+
|
|
|
+ int id = Convert.ToInt32(item);
|
|
|
+ //根据 测试方案明细主键ID 查找测试方案id 及方案名和设备名
|
|
|
+ var findEntity = _basicPlcTestSchemeDtlService.Find(id);
|
|
|
+ var findresult = _mapper.Map<bas_plc_test_scheme_dtl, BasicPlcTestSchemeDtlDto>(findEntity);
|
|
|
+ if (findresult != null)
|
|
|
+ {
|
|
|
+ //根据方案id 在方案表中查找方案名 设备名
|
|
|
+ int schID = Convert.ToInt32(findresult.SchemeId);
|
|
|
+ var findSch = _basicPlcTestSchemeService.Find(schID);
|
|
|
+ if (findSch != null)
|
|
|
+ {
|
|
|
+ ScheduleName = findSch.scheme_name;
|
|
|
+ DeviceName = findSch.device_name;
|
|
|
+
|
|
|
+ }
|
|
|
+ TestName = findresult.ItemName;
|
|
|
+ SelectTest = findresult.ItemType;
|
|
|
+ //前置项解析
|
|
|
+ string preconStr = findresult.Precondition.ToString();
|
|
|
+ if (!string.IsNullOrEmpty(preconStr))
|
|
|
+ {
|
|
|
+ JsonModel preconditionModel = JsonConvert.DeserializeObject<JsonModel>(preconStr);
|
|
|
+ BeforeSelectJudge = preconditionModel.ItemType;
|
|
|
+ SelectLogic = preconditionModel.ItemLogical;
|
|
|
+ BeforeDetail = preconditionModel.Description;
|
|
|
+ BeforeConList.Clear();
|
|
|
+ foreach (var detail in preconditionModel.DetailInfo)
|
|
|
+ {
|
|
|
+ BasPlcItemConfigDto basPlcItemConfigDto = new BasPlcItemConfigDto();
|
|
|
+ basPlcItemConfigDto.PlcItem = detail.PlcItem;
|
|
|
+ basPlcItemConfigDto.PlcAddress = detail.PlcAddress;
|
|
|
+ basPlcItemConfigDto.PlcValue = detail.PlcValue;
|
|
|
+ basPlcItemConfigDto.Remark = detail.Remark;
|
|
|
+ beforeConList.Add(basPlcItemConfigDto);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //输入项解析
|
|
|
+ string inStr = findresult.Action.ToString();
|
|
|
+ if (!string.IsNullOrEmpty(inStr))
|
|
|
+ {
|
|
|
+ JsonModel inModel = JsonConvert.DeserializeObject<JsonModel>(inStr);
|
|
|
+ SelectInJudge = inModel.ItemType;
|
|
|
+ InSelectLogic = inModel.ItemLogical;
|
|
|
+ InDetail = inModel.Description;
|
|
|
+ InConList.Clear();
|
|
|
+ foreach (var detail in inModel.DetailInfo)
|
|
|
+ {
|
|
|
+ BasPlcItemConfigDto basPlcItemConfigDto = new BasPlcItemConfigDto();
|
|
|
+ basPlcItemConfigDto.PlcItem = detail.PlcItem;
|
|
|
+ basPlcItemConfigDto.PlcAddress = detail.PlcAddress;
|
|
|
+ basPlcItemConfigDto.PlcValue = detail.PlcValue;
|
|
|
+ basPlcItemConfigDto.Remark = detail.Remark;
|
|
|
+ InConList.Add(basPlcItemConfigDto);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //输出项解析
|
|
|
+ string outStr = findresult.JudgementResult.ToString();
|
|
|
+ if (!string.IsNullOrEmpty(outStr))
|
|
|
+ {
|
|
|
+ JsonModel outModel = JsonConvert.DeserializeObject<JsonModel>(outStr);
|
|
|
+ SelectOutJudge = outModel.ItemType;
|
|
|
+ OutSelectLogic = outModel.ItemLogical;
|
|
|
+ OutDetail = outModel.Description;
|
|
|
+ OutConList.Clear();
|
|
|
+ foreach (var detail in outModel.DetailInfo)
|
|
|
+ {
|
|
|
+ BasPlcItemConfigDto basPlcItemConfigDto = new BasPlcItemConfigDto();
|
|
|
+ basPlcItemConfigDto.PlcItem = detail.PlcItem;
|
|
|
+ basPlcItemConfigDto.PlcAddress = detail.PlcAddress;
|
|
|
+ basPlcItemConfigDto.PlcValue = detail.PlcValue;
|
|
|
+ basPlcItemConfigDto.Remark = detail.Remark;
|
|
|
+ OutConList.Add(basPlcItemConfigDto);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 获取配置
|
|
|
+ /// </summary>
|
|
|
+ private void GetConfigOption()
|
|
|
+ {
|
|
|
+ var configList = _optionConfigService.QueryList();
|
|
|
+ _optionConfigs = _mapper.Map<List<OptionConfig>, List<OptionConfigDto>>(configList);
|
|
|
+ var tests = _optionConfigs.FindAll(x => x.TypeID == 1);
|
|
|
+ TestKinds = new List<string>();
|
|
|
+ foreach (var test in tests)
|
|
|
+ {
|
|
|
+ TestKinds.Add(test.ContentOption);
|
|
|
+ }
|
|
|
+
|
|
|
+ //测试项类型
|
|
|
+ var judges = _optionConfigs.FindAll(x => x.TypeID == 2);
|
|
|
+ foreach (var judge in judges)
|
|
|
+ {
|
|
|
+ BeforeJudgeKinds.Add(judge.ContentOption);
|
|
|
+ InJudgeKinds.Add(judge.ContentOption);
|
|
|
+ OutJudgeKinds.Add(judge.ContentOption);
|
|
|
+ }
|
|
|
+
|
|
|
+ //判定逻辑
|
|
|
+ var logics = _optionConfigs.FindAll(x => x.TypeID == 3);
|
|
|
+ foreach (var logic in logics)
|
|
|
+ {
|
|
|
+ JudgeLogicKinds.Add(logic.ContentOption);
|
|
|
+ InJudgeLogicKinds.Add(logic.ContentOption);
|
|
|
+ OutJudgeLogicKinds.Add(logic.ContentOption);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 初始化
|
|
|
+ /// </summary>
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 关闭按钮
|
|
|
+ /// </summary>
|
|
|
+ private void Close()
|
|
|
+ {
|
|
|
+ RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 方案明细添加到数据库
|
|
|
+ /// </summary>
|
|
|
+ private void AddOrEditDetailsToDb(long scheduleId)
|
|
|
+ {
|
|
|
+ //前置项json转化
|
|
|
+ string prefixJsonStr = ModelToJsonToStr(BeforeSelectJudge, SelectLogic, BeforeDetail, BeforeConList);
|
|
|
+ //输入项json转化
|
|
|
+ string inJsonStr = ModelToJsonToStr(SelectInJudge, InSelectLogic, InDetail, InConList);
|
|
|
+ //输出项json转化
|
|
|
+ string outJsonStr = ModelToJsonToStr(SelectOutJudge, OutSelectLogic, OutDetail, OutConList);
|
|
|
+ //添加达到测试主表
|
|
|
+ //增加测试方案
|
|
|
+ BasicPlcTestSchemeDtlDto schDtlDto = new BasicPlcTestSchemeDtlDto();
|
|
|
+ schDtlDto.SchemeId = scheduleId;
|
|
|
+ schDtlDto.ItemName = TestName;
|
|
|
+
|
|
|
+ schDtlDto.ItemType = SelectTest;
|
|
|
+ schDtlDto.Precondition = prefixJsonStr;
|
|
|
+ schDtlDto.PreconditionDescribe = BeforeDetail;
|
|
|
+ schDtlDto.Action = inJsonStr;
|
|
|
+ schDtlDto.ActionDescribe = InDetail;
|
|
|
+ schDtlDto.JudgementResult = outJsonStr;
|
|
|
+ schDtlDto.JudgementResultDescribe = OutDetail;
|
|
|
+ schDtlDto.CreateBy = Appsession.UserName;
|
|
|
+ schDtlDto.CreateTime = DateTime.Now;
|
|
|
+ schDtlDto.UpdateTime = DateTime.Now;
|
|
|
+ schDtlDto.UpdateBy = Appsession.UserName;
|
|
|
+ bas_plc_test_scheme_dtl schDtlEntity = _mapper.Map<BasicPlcTestSchemeDtlDto, bas_plc_test_scheme_dtl>(schDtlDto);
|
|
|
+ if (Title == "新增方案")
|
|
|
+ {
|
|
|
+
|
|
|
+ bool isAddSucc = _basicPlcTestSchemeDtlService.Add(schDtlEntity);
|
|
|
+ if (isAddSucc)
|
|
|
+ {
|
|
|
+ _logger.Info($"新增方案成功。方案名{ScheduleName},测试项{TestName}");
|
|
|
+ MessageBoxResult boxResult = MessageBox.Show("更新成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ MessageBoxResult boxResult = MessageBox.Show("更新失败", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (Title == "编辑方案")
|
|
|
+ {
|
|
|
+ //修改 必须给主键SchemeDtlId值
|
|
|
+ var schDtl = _basicPlcTestSchemeDtlService.FindSchDtlIdBySchIdAndItem(scheduleId, TestName);
|
|
|
+ if (schDtl != null)
|
|
|
+ {
|
|
|
+ schDtlDto.SchemeDtlId = schDtl.scheme_dtl_id;
|
|
|
+ bas_plc_test_scheme_dtl schDtlEntityEdit = _mapper.Map<BasicPlcTestSchemeDtlDto, bas_plc_test_scheme_dtl>(schDtlDto);
|
|
|
+ bool isSucc = _basicPlcTestSchemeDtlService.Edit(schDtlEntityEdit);
|
|
|
+ if (isSucc)
|
|
|
+ {
|
|
|
+ _logger.Info($"更新方案成功。方案名{ScheduleName},测试项{TestName}");
|
|
|
+ MessageBoxResult boxResult = MessageBox.Show("更新成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ MessageBoxResult boxResult = MessageBox.Show("更新失败", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// mode转json
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="itemType"></param>
|
|
|
+ /// <param name="itemLogical"></param>
|
|
|
+ /// <param name="description"></param>
|
|
|
+ /// <param name="conList"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+
|
|
|
+ private string ModelToJsonToStr(string itemType, string itemLogical, string description, ObservableCollection<BasPlcItemConfigDto> conList)
|
|
|
+ {
|
|
|
+ JsonModel prefixJsonModel = new JsonModel();
|
|
|
+ prefixJsonModel.ItemType = itemType;
|
|
|
+ prefixJsonModel.ItemLogical = itemLogical;
|
|
|
+ prefixJsonModel.Description = description;
|
|
|
+ prefixJsonModel.DetailInfo = new List<DetailPLC>();
|
|
|
+ foreach (var item in conList)
|
|
|
+ {
|
|
|
+ DetailPLC plcItem = new DetailPLC();
|
|
|
+ plcItem.PlcItem = item.PlcItem;
|
|
|
+ plcItem.PlcAddress = item.PlcAddress;
|
|
|
+ plcItem.PlcValue = item.PlcValue;
|
|
|
+ plcItem.Remark = item.Remark;
|
|
|
+ prefixJsonModel.DetailInfo.Add(plcItem);
|
|
|
+
|
|
|
+ }
|
|
|
+ string prefixJsonStr = JsonConvert.SerializeObject(prefixJsonModel);
|
|
|
+ return prefixJsonStr;
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 重置
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="obj"></param>
|
|
|
+ private void ResetMethod(string obj)
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ #region 命令绑定
|
|
|
+ public DelegateCommand CloseCommand { set; get; }
|
|
|
+
|
|
|
+ public DelegateCommand<string> ResetCommand { set; get; }
|
|
|
+
|
|
|
+
|
|
|
+ #endregion
|
|
|
+ #region 变量绑定
|
|
|
+ /// <summary>
|
|
|
+ /// 测试方案编码
|
|
|
+ /// </summary>
|
|
|
+ private string scheduleName;
|
|
|
+ public string ScheduleName
|
|
|
+ {
|
|
|
+ get { return scheduleName; }
|
|
|
+ set { scheduleName = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 设备名称
|
|
|
+ /// </summary>
|
|
|
+ private string deviceName;
|
|
|
+ public string DeviceName
|
|
|
+ {
|
|
|
+ get { return deviceName; }
|
|
|
+ set { deviceName = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 测试项名称
|
|
|
+ /// </summary>
|
|
|
+ private string testName;
|
|
|
+ public string TestName
|
|
|
+ {
|
|
|
+ get { return testName; }
|
|
|
+ set { testName = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 测试项类型
|
|
|
+ /// </summary>
|
|
|
+ private List<string> testKinds = new List<string>();
|
|
|
+ public List<string> TestKinds
|
|
|
+ {
|
|
|
+ get { return testKinds; }
|
|
|
+ set { testKinds = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ private string selectTest;
|
|
|
+ public string SelectTest
|
|
|
+ {
|
|
|
+ get { return selectTest; }
|
|
|
+ set { selectTest = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 判定类型(前置项)
|
|
|
+ /// </summary>
|
|
|
+ private List<string> beforeJudgeKinds = new List<string>();
|
|
|
+ public List<string> BeforeJudgeKinds
|
|
|
+ {
|
|
|
+ get { return beforeJudgeKinds; }
|
|
|
+ set { beforeJudgeKinds = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+ private string beforeSelectJudge;
|
|
|
+ public string BeforeSelectJudge
|
|
|
+ {
|
|
|
+ get { return beforeSelectJudge; }
|
|
|
+ set { beforeSelectJudge = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 逻辑判断
|
|
|
+ /// </summary>
|
|
|
+ private List<string> judgeLogicKinds = new List<string>();
|
|
|
+ public List<string> JudgeLogicKinds
|
|
|
+ {
|
|
|
+ get { return judgeLogicKinds; }
|
|
|
+ set { judgeLogicKinds = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+ private string selectLogic;
|
|
|
+ public string SelectLogic
|
|
|
+ {
|
|
|
+ get { return selectLogic; }
|
|
|
+ set { selectLogic = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+ private string beforeDetail;
|
|
|
+ public string BeforeDetail
|
|
|
+ {
|
|
|
+ get { return beforeDetail; }
|
|
|
+ set { beforeDetail = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+
|
|
|
+ private ObservableCollection<BasPlcItemConfigDto> beforeConList;
|
|
|
+ public ObservableCollection<BasPlcItemConfigDto> BeforeConList
|
|
|
+ {
|
|
|
+ get { return beforeConList; }
|
|
|
+ set { beforeConList = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 判定类型(输入项)
|
|
|
+ /// </summary>
|
|
|
+ private List<string> inJudgeKinds = new List<string>();
|
|
|
+ public List<string> InJudgeKinds
|
|
|
+ {
|
|
|
+ get { return inJudgeKinds; }
|
|
|
+ set { inJudgeKinds = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+ private string selectInJudge;
|
|
|
+ public string SelectInJudge
|
|
|
+ {
|
|
|
+ get { return selectInJudge; }
|
|
|
+ set { selectInJudge = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 逻辑判断
|
|
|
+ /// </summary>
|
|
|
+ private List<string> inJudgeLogicKinds = new List<string>();
|
|
|
+ public List<string> InJudgeLogicKinds
|
|
|
+ {
|
|
|
+ get { return inJudgeLogicKinds; }
|
|
|
+ set { inJudgeLogicKinds = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+ private string inSelectLogic;
|
|
|
+ public string InSelectLogic
|
|
|
+ {
|
|
|
+ get { return inSelectLogic; }
|
|
|
+ set { inSelectLogic = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+ private string inDetail;
|
|
|
+ public string InDetail
|
|
|
+ {
|
|
|
+ get { return inDetail; }
|
|
|
+ set { inDetail = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+
|
|
|
+ private ObservableCollection<BasPlcItemConfigDto> inConList;
|
|
|
+ public ObservableCollection<BasPlcItemConfigDto> InConList
|
|
|
+ {
|
|
|
+ get { return inConList; }
|
|
|
+ set { inConList = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 判定类型(结果项)
|
|
|
+ /// </summary>
|
|
|
+ private List<string> outJudgeKinds = new List<string>();
|
|
|
+ public List<string> OutJudgeKinds
|
|
|
+ {
|
|
|
+ get { return outJudgeKinds; }
|
|
|
+ set { outJudgeKinds = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+ private string selectOutJudge;
|
|
|
+ public string SelectOutJudge
|
|
|
+ {
|
|
|
+ get { return selectOutJudge; }
|
|
|
+ set { selectOutJudge = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 逻辑判断
|
|
|
+ /// </summary>
|
|
|
+ private List<string> outJudgeLogicKinds = new List<string>();
|
|
|
+ public List<string> OutJudgeLogicKinds
|
|
|
+ {
|
|
|
+ get { return outJudgeLogicKinds; }
|
|
|
+ set { outJudgeLogicKinds = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+ private string outSelectLogic;
|
|
|
+ public string OutSelectLogic
|
|
|
+ {
|
|
|
+ get { return outSelectLogic; }
|
|
|
+ set { outSelectLogic = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+
|
|
|
+ private string outDetail;
|
|
|
+ public string OutDetail
|
|
|
+ {
|
|
|
+ get { return outDetail; }
|
|
|
+ set { outDetail = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+ private ObservableCollection<BasPlcItemConfigDto> outConList;
|
|
|
+ public ObservableCollection<BasPlcItemConfigDto> OutConList
|
|
|
+ {
|
|
|
+ get { return outConList; }
|
|
|
+ set { outConList = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+
|
|
|
+ private int stepIndex = 0;
|
|
|
+ public int StepIndex
|
|
|
+ {
|
|
|
+ get { return stepIndex; }
|
|
|
+ set { stepIndex = value; RaisePropertyChanged(); }
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ }
|
|
|
+}
|