using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace IStation.Model.Monitor
|
{
|
/// <summary>
|
/// 转换参数
|
/// </summary>
|
public class ConvertParameters : JsonModel<ConvertParameters>, IConvert
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public ConvertParameters() { }
|
|
/// <summary>
|
///
|
/// </summary>
|
public ConvertParameters(ConvertParameters rhs)
|
{
|
this.ConvertType = rhs.ConvertType;
|
this.ConvertParas = rhs.ConvertParas;
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
public ConvertParameters(eConvertType convertType, IConvert convertParas)
|
{
|
this.ConvertType = convertType;
|
this.ConvertParas = convertParas;
|
}
|
/// <summary>
|
/// 转换类型
|
/// </summary>
|
public eConvertType ConvertType { get; set; }
|
|
/// <summary>
|
/// 转换参数
|
/// </summary>
|
public IConvert ConvertParas { get; set; }
|
|
/// <summary>
|
/// 转换
|
/// </summary>
|
public double Convert(double value, out bool succeed)
|
{
|
succeed = false;
|
if (this.ConvertParas == null)
|
return value;
|
return this.ConvertParas.Convert(value, out succeed);
|
}
|
|
/// <summary>
|
/// To Model
|
/// </summary>
|
public new static ConvertParameters ToModel(string json)
|
{
|
if (string.IsNullOrEmpty(json))
|
return default;
|
try
|
{
|
var dict = JsonHelper.Json2Object<Dictionary<string, object>>(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;
|
}
|
}
|
|
}
|
}
|