using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace IStation.Model.Monitor
|
{
|
/// <summary>
|
/// 映射转换参数
|
/// </summary>
|
public class MappingConvert : JsonModel<MappingConvert>, IMappingConvert
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public MappingConvert() { }
|
/// <summary>
|
///
|
/// </summary>
|
/// <param name="convertType"></param>
|
/// <param name="convertParas"></param>
|
public MappingConvert(eMappingConvertType convertType, IMappingConvert convertParas)
|
{
|
this.ConvertType = convertType;
|
this.ConvertParas = convertParas;
|
}
|
/// <summary>
|
///
|
/// </summary>
|
/// <param name="rhs"></param>
|
public MappingConvert(MappingConvert rhs)
|
{
|
this.ConvertType = rhs.ConvertType;
|
this.ConvertParas = rhs.ConvertParas;
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
public eMappingConvertType ConvertType { get; set; }
|
/// <summary>
|
///
|
/// </summary>
|
public IMappingConvert ConvertParas { get; set; }
|
|
/// <summary>
|
/// 转换
|
/// </summary>
|
public double Convert(double value, out bool succeed)
|
{
|
succeed = false;
|
if (ConvertParas == null)
|
return value;
|
return ConvertParas.Convert(value, out succeed);
|
}
|
|
/// <summary>
|
/// 是否满足条件
|
/// </summary>
|
public bool Meet(double value)
|
{
|
if (ConvertParas == null)
|
return default;
|
return ConvertParas.Meet(value);
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
/// <param name="json"></param>
|
/// <returns></returns>
|
public new static MappingConvert ToModel(string json)
|
{
|
if (string.IsNullOrEmpty(json))
|
return default;
|
try
|
{
|
var dict = JsonHelper.Json2Object<Dictionary<string, object>>(json);
|
return ToModel(dict);
|
}
|
catch
|
{
|
return default;
|
}
|
}
|
/// <summary>
|
///
|
/// </summary>
|
/// <param name="dict"></param>
|
/// <returns></returns>
|
public static MappingConvert ToModel(Dictionary<string, object> dict)
|
{
|
if (dict == null || dict.Count < 1)
|
return default;
|
try
|
{
|
var convertTpe = (eMappingConvertType)System.Convert.ToInt32(dict["ConvertType"]);
|
IMappingConvert convertParas = null;
|
switch (convertTpe)
|
{
|
case eMappingConvertType.Single:
|
convertParas = JsonHelper.Json2Object<SingleMappingConvert>(JsonHelper.Object2Json(dict["ConvertParas"]));
|
break;
|
case eMappingConvertType.Compare:
|
convertParas = JsonHelper.Json2Object<CompareMappingConvert>(JsonHelper.Object2Json(dict["ConvertParas"]));
|
break;
|
case eMappingConvertType.Range:
|
convertParas = JsonHelper.Json2Object<RangeMappingConvert>(JsonHelper.Object2Json(dict["ConvertParas"]));
|
break;
|
default: break;
|
}
|
return new MappingConvert(convertTpe, convertParas);
|
}
|
catch
|
{
|
return default;
|
}
|
}
|
|
}
|
}
|