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