using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IStation.Model.Monitor
{
///
/// 转换参数
///
public class ConvertParameters : JsonModel, IConvert
{
///
///
///
public ConvertParameters() { }
///
///
///
public ConvertParameters(ConvertParameters rhs)
{
this.ConvertType = rhs.ConvertType;
this.ConvertParas = rhs.ConvertParas;
}
///
///
///
public ConvertParameters(eConvertType convertType, IConvert convertParas)
{
this.ConvertType = convertType;
this.ConvertParas = convertParas;
}
///
/// 转换类型
///
public eConvertType ConvertType { get; set; }
///
/// 转换参数
///
public IConvert ConvertParas { get; set; }
///
/// 转换
///
public double Convert(double value, out bool succeed)
{
succeed = false;
if (this.ConvertParas == null)
return value;
return this.ConvertParas.Convert(value, out succeed);
}
///
/// To Model
///
public new static ConvertParameters ToModel(string json)
{
if (string.IsNullOrEmpty(json))
return default;
try
{
var dict = JsonHelper.Json2Object>(json);
var convertType = (eConvertType)System.Convert.ToInt32(dict["ConvertType"]);
IConvert convertParas = null;
switch (convertType)
{
case eConvertType.Ratio:
convertParas = RatioConvert.ToModel(JsonHelper.Object2Json(dict["ConvertParas"]));
break;
case eConvertType.Mapping:
convertParas = MappingConvert.ToModel(JsonHelper.Object2Json(dict["ConvertParas"]));
break;
default: break;
}
return new ConvertParameters(convertType, convertParas);
}
catch
{
return default;
}
}
}
}