using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace IStation.Unit { /// /// /// public class UnitQHelper : IUnitHelper { #region 静态 public static double Convert(eUnitQ fromUnit, eUnitQ toUnit, double fromValue) { var toValue = fromValue; switch (fromUnit) { case eUnitQ.LS: { switch (toUnit) { case eUnitQ.LS: { toValue = fromValue; } break; case eUnitQ.M3H: { toValue = fromValue * 60 * 60 / 1000; } break; case eUnitQ.M3M: { toValue = fromValue * 60 / 1000; } break; case eUnitQ.M3S: { toValue = fromValue / 1000; } break; default: break; } } break; case eUnitQ.M3H: { switch (toUnit) { case eUnitQ.LS: { toValue = fromValue * 1000 / 60 / 60; } break; case eUnitQ.M3H: { toValue = fromValue; } break; case eUnitQ.M3M: { toValue = fromValue / 60; } break; case eUnitQ.M3S: { toValue = fromValue / 60 / 60; } break; default: break; } } break; case eUnitQ.M3M: { switch (toUnit) { case eUnitQ.LS: { toValue = fromValue * 1000 / 60; } break; case eUnitQ.M3H: { toValue = fromValue * 60; } break; case eUnitQ.M3M: { toValue = fromValue; } break; case eUnitQ.M3S: { toValue = fromValue / 60; } break; default: break; } } break; case eUnitQ.M3S: { switch (toUnit) { case eUnitQ.LS: { toValue = fromValue * 1000; } break; case eUnitQ.M3H: { toValue = fromValue * 60 * 60; } break; case eUnitQ.M3M: { toValue = fromValue * 60; } break; case eUnitQ.M3S: { toValue = fromValue; } break; default: break; } } break; default: break; } return toValue; } public static string GetCnUnitName(eUnitQ unit) { switch (unit) { case eUnitQ.LS: return "升/秒"; case eUnitQ.M3H: return "立方米/小时"; case eUnitQ.M3M: return "立方米/分钟"; case eUnitQ.M3S: return "立方米/秒"; default: return string.Empty; } } public static List GetCnUnitNameList() { var list = new List(); foreach (eUnitQ item in Enum.GetValues(typeof(eUnitQ))) { list.Add(GetCnUnitName(item)); } return list; } public static Dictionary GetCnUnitDict() { var dic = new Dictionary(); foreach (eUnitQ item in Enum.GetValues(typeof(eUnitQ))) { dic.Add(item, GetCnUnitName(item)); } return dic; } public static string GetEnUnitName(eUnitQ unit) { switch (unit) { case eUnitQ.LS: return "L/s"; case eUnitQ.M3H: return "m³/h"; case eUnitQ.M3M: return "m³/min"; case eUnitQ.M3S: return "m³/s"; default: return string.Empty; } } public static List GetEnUnitNameList() { var list = new List(); foreach (eUnitQ item in Enum.GetValues(typeof(eUnitQ))) { list.Add(GetEnUnitName(item)); } return list; } public static Dictionary GetEnUnitDict() { var dic = new Dictionary(); foreach (eUnitQ item in Enum.GetValues(typeof(eUnitQ))) { dic.Add(item, GetEnUnitName(item)); } return dic; } #endregion #region 显示接口 double IUnitHelper.Convert(int fromUnit, int toUnit, double fromValue) { return Convert((eUnitQ)fromUnit, (eUnitQ)toUnit, fromValue); } string IUnitHelper.GetCnUnitName(int unit) { return GetCnUnitName((eUnitQ)unit); } List IUnitHelper.GetCnUnitNameList() { return GetCnUnitNameList(); } Dictionary IUnitHelper.GetCnUnitDict() { var dic = new Dictionary(); foreach (var item in GetCnUnitDict()) { dic.Add((int)item.Key, item.Value); } return dic; } string IUnitHelper.GetEnUnitName(int unit) { return GetEnUnitName((eUnitQ)unit); } List IUnitHelper.GetEnUnitNameList() { return GetEnUnitNameList(); } Dictionary IUnitHelper.GetEnUnitDict() { var dic = new Dictionary(); foreach (var item in GetEnUnitDict()) { dic.Add((int)item.Key, item.Value); } return dic; } #endregion } }