| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- using System;
- using System.Collections.Generic;
- using SHJX.Service.Common.ReadXML;
- using SHJX.Service.Control.Interface;
- using SHJX.Service.Common.Logging;
- using Microsoft.Extensions.Logging;
- namespace SHJX.Service.Control.TimerControl.WriteTaskToEquipment
- {
- /// <summary>
- /// 任务下发
- /// </summary>
- public class WriteTaskFactory
- {
- private static readonly ILogger logger = LogFactory.BuildLogger(typeof(WriteTaskFactory));
- private readonly ReadConfigUtil _config;
- private readonly FlowContent _operateController;
- private readonly Dictionary<string, WriteTaskToEquipmentImp> _writeTasks;
- public WriteTaskFactory( ReadConfigUtil configUtil,FlowContent operateController)
- {
- _config = configUtil;
- _operateController = operateController;
- _writeTasks = new Dictionary<string, WriteTaskToEquipmentImp>();
- }
- /// <summary>
- /// 获取任务下发类
- /// </summary>
- /// <param name="opKey"></param>
- /// <returns></returns>
- public WriteTaskToEquipmentImp Get(string opKey)
- {
- try
- {
- if (_writeTasks.TryGetValue(opKey, out var writeTask))
- return writeTask;
- WriteTaskToEquipmentImp writeTaskOperate = opKey switch
- {
- "Sample" => new SampleWriteTask(_config, _operateController), //样品
- "Calibration" => new CalibrationWriteTask(_config, _operateController), //标定
- "Wash" => new WashWriteTask(_config, _operateController), //润洗
- "SinglePoint" => new SinglePointWriteTask(_config, _operateController),
- _ => throw new ArgumentNullException(opKey)
- };
- _writeTasks.Add(opKey, writeTaskOperate);
- return writeTaskOperate;
- }
- catch (Exception ex)
- {
- logger.LogError(ex.ToString());
- return null;
- }
- }
- }
- }
|