using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PHEMlightdll { public class Helpers { #region Members private string _vClass; public string vClass { get { return _vClass; } set { _vClass = value; } } private string _eClass; public string eClass { get { return _eClass; } set { _eClass = value; } } private string _pClass; public string pClass { get { return _pClass; } set { _pClass = value; } } private string _sClass; public string sClass { get { return _sClass; } set { _sClass = value; } } private string _Class; public string gClass { get { return _Class; } set { _Class = value; } } private string _uClass; public string uClass { get { return _uClass; } set { _uClass = value; } } private string _ErrMsg; public string ErrMsg { get { return _ErrMsg; } set { _ErrMsg = value; } } private string _commentPrefix; public string CommentPrefix { get { return _commentPrefix; } set { _commentPrefix = value; } } private string _PHEMDataV; public string PHEMDataV { get { return _PHEMDataV; } set { _PHEMDataV = value; } } #endregion #region Classes //Get vehicle class private bool getvclass(string VEH) { // Set the drive train efficency Constants.DRIVE_TRAIN_EFFICIENCY = Constants.DRIVE_TRAIN_EFFICIENCY_All; //Get the vehicle class if (VEH.IndexOf(Constants.strPKW) >= 0) { _vClass = Constants.strPKW; return true; } else if (VEH.IndexOf(Constants.strLNF) >= 0) { _vClass = Constants.strLNF; return true; } else if (VEH.IndexOf(Constants.strLKW) >= 0) { _vClass = Constants.strLKW; return true; } else if (VEH.IndexOf(Constants.strLSZ) >= 0) { _vClass = Constants.strLSZ; return true; } else if (VEH.IndexOf(Constants.strRB) >= 0) { _vClass = Constants.strRB; return true; } else if (VEH.IndexOf(Constants.strLB) >= 0) { _vClass = Constants.strLB; Constants.DRIVE_TRAIN_EFFICIENCY = Constants.DRIVE_TRAIN_EFFICIENCY_CB; return true; } else if (VEH.IndexOf(Constants.strMR2) >= 0) { _vClass = Constants.strMR2; return true; } else if (VEH.IndexOf(Constants.strMR4) >= 0) { _vClass = Constants.strMR4; return true; } else if (VEH.IndexOf(Constants.strMR) >= 0) { _vClass = Constants.strMR; return true; } else if (VEH.IndexOf(Constants.strKKR) >= 0) { _vClass = Constants.strKKR; return true; } //Should never happens _ErrMsg = "Vehicle class not defined! (" + VEH + ")"; return false; } //Get propulsion Class private bool getpclass(string VEH) { if (VEH.IndexOf("_" + Constants.strBEV) > 0) { _pClass = Constants.strBEV; return true; } else if (VEH.IndexOf("_" + Constants.strDiesel) > 0) { _pClass = Constants.strDiesel; return true; } else if (VEH.IndexOf("_" + Constants.strGasoline) > 0) { _pClass = Constants.strGasoline; return true; } else if (VEH.IndexOf("_" + Constants.strCNG) > 0) { _pClass = Constants.strCNG; return true; } else if (VEH.IndexOf("_" + Constants.strLPG) > 0) { _pClass = Constants.strLPG; return true; } //Should never happens _ErrMsg = "Fuel class not defined! (" + VEH + ")"; return false; } //Get size class private bool getsclass(string VEH) { if (VEH.IndexOf(Constants.strLKW) >= 0) { if (VEH.IndexOf("_" + Constants.strSII) > 0) { _sClass = Constants.strSII; return true; } else if (VEH.IndexOf("_" + Constants.strSI) > 0) { _sClass = Constants.strSI; return true; } else { //Should never happen _ErrMsg = "Size class not defined! (" + VEH + ")"; return false; } } else if (VEH.IndexOf(Constants.strLNF) >= 0) { if (VEH.IndexOf("_" + Constants.strSIII) > 0) { _sClass = Constants.strSIII; return true; } else if (VEH.IndexOf("_" + Constants.strSII) > 0) { _sClass = Constants.strSII; return true; } else if (VEH.IndexOf("_" + Constants.strSI) > 0) { _sClass = Constants.strSI; return true; } else { _ErrMsg = "Size class not defined! (" + VEH.Substring(VEH.LastIndexOf(@"\"), VEH.Length - VEH.LastIndexOf(@"\")) + ")"; return false; } } else if (VEH.IndexOf(Constants.strLB) >= 0) { if (VEH.IndexOf("_" + Constants.strMidi) > 0) { _sClass = Constants.strMidi; return true; } else if (VEH.IndexOf("_" + Constants.strHeavy) > 0) { _sClass = Constants.strHeavy; return true; } else { _sClass = ""; return true; } } else { _sClass = ""; return true; } } //Get euro class private bool geteclass(string VEH) { if (VEH.IndexOf("_" + Constants.strEU) > 0) { if (VEH.IndexOf("_", VEH.IndexOf("_" + Constants.strEU) + 1) > 0) { _eClass = Constants.strEU + VEH.Substring(VEH.IndexOf("_" + Constants.strEU) + 3, VEH.IndexOf("_", VEH.IndexOf("_" + Constants.strEU) + 1) - (VEH.IndexOf("_" + Constants.strEU) + 3)); return true; } else if (VEH.IndexOf(".", VEH.IndexOf("_" + Constants.strEU) + 1) > 0) { _eClass = Constants.strEU + VEH.Substring(VEH.IndexOf("_" + Constants.strEU) + 3, VEH.IndexOf(".", VEH.IndexOf("_" + Constants.strEU) + 1) - (VEH.IndexOf("_" + Constants.strEU) + 3)); return true; } else { _eClass = Constants.strEU + VEH.Substring(VEH.IndexOf("_" + Constants.strEU) + 3, VEH.Length - (VEH.IndexOf("_" + Constants.strEU) + 3)); return true; } } else if (VEH.IndexOf("_" + Constants.strBEV) > 0) { _eClass = ""; return true; } //Should never happens _ErrMsg = "Euro class not defined! (" + VEH + ")"; return false; } //Get use Class private bool getuclass(string VEH) { if (VEH.IndexOf("_" + Constants.strHybrid) > 0) { _uClass = Constants.strHybrid; return true; } else if (VEH.IndexOf("_" + Constants.strSU) > 0) { _uClass = Constants.strSU; return true; } else { _uClass = ""; return true; } } //Set complete class string public bool setclass(string VEH) { //Get the classes if (!getvclass(VEH)) return false; if (!geteclass(VEH)) return false; if (!getpclass(VEH)) return false; if (!getsclass(VEH)) return false; if (!getuclass(VEH)) return false; if (VEH.LastIndexOf(@"\") <= 0) _Class = VEH; else { string vehstr = VEH.Substring(VEH.LastIndexOf(@"\") + 1, VEH.Length - VEH.LastIndexOf(@"\") - 1); _Class = vehstr.Substring(0, vehstr.IndexOf(".")); } return true; } #endregion } }