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