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