using System;
using System.Threading;
using SHJX.Service.Model.Dao;
using SHJX.Service.Control.Modules;
using SHJX.Service.Control.Interface;
using System.Linq;
using SHJX.Service.Common.ReadXML;
namespace SHJX.Service.Control.Route.RouteController
{
///
/// 硫酸银
///
/// 硫酸银
public class DissolveAddLiquidOperate : FlowControlOperateImp
{
private const string OpName = "SilverSulfate";
private DropLiquid liquid;
public virtual bool Operate(ReadConfigUtil config, DataEventArgs data)
{
liquid = data.DataManager.QueryLiquid(OpName);
if (!liquid.Enable) return true;
#if false
DataCentre.GetPumpContent.Factory(OpName).GoBackOriginalPosition("In");
var res = true;
for (int i = 0; i < 2; i++)
{
var arriveEndPoint = DataCentre.GetPumpContent.Factory(OpName).ArriveEndPoint();
if (arriveEndPoint) DataCentre.GetPumpContent.Factory(OpName).LiquidOperation("In", Convert.ToInt32(liquid.SampleVolume));
var position = data.Task.To switch
{
"R1" or "R2" or "R3" or "R4" or "R5" or "R6" or "R7" or "R8" or "R9" or "R10" or "R11" or "R12" => "Out1",
"R13" or "R14" or "R15" or "R16" or "R17" or "R18" or "R19" or "R20" or "R21" or "R22" or "R23" or "R24" => "Out2",
_ => throw new ArgumentNullException(data.Task.To),
};
res = res && DataCentre.GetPumpContent.Factory(OpName).LiquidOperation(position, -1 * Convert.ToInt32(liquid.SampleVolume));
}
#endif
var volume = data.Task.TaskType switch
{
"润洗" => liquid.WashVolume,
"清洗" => liquid.ClearVolume,
_ => liquid.SampleVolume,
};
#if false
var position = data.Task.To switch
{
"R1" or "R2" or "R3" or "R4" or "R5" or "R6" or "R7" or "R8" or "R9" or "R10" or "R11" or "R12" => "Out1",
"R13" or "R14" or "R15" or "R16" or "R17" or "R18" or "R19" or "R20" or "R21" or "R22" or "R23" or "R24" => "Out2",
_ => throw new ArgumentNullException(data.Task.To),
};
#endif
var position = data.Task.To switch
{
"R1" or "R2" or "R3" or "R4" or "R5" or "R6" or "R7" or "R8" or "R9" or "R10" or "R11" or "R12" => "2",
"R13" or "R14" or "R15" or "R16" or "R17" or "R18" or "R19" or "R20" or "R21" or "R22" or "R23" or "R24" => "3",
_ => throw new ArgumentNullException(data.Task.To),
};
var res = DataCentre.GetPumpContent.Factory(OpName).LiquidOperation(position, -1 * Convert.ToInt32(volume) /*Convert.ToInt32(volume / DataCentre.GetConfig.DropOnceAmounts.FirstOrDefault(item => item.Name.Equals("SilverSulfate")).LowValue * 20000)*/);
Thread.Sleep(1000);
LiquidTotal liquid1 = DataCentre._dataManager.Query().Where(it => it.LiquidName.Equals(OpName)).First();
liquid1.Total -= 15; //硫酸银 减 15毫升
res = res & DataCentre._dataManager.Update(liquid1) > 0;
return res;
}
}
}