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; } } } }