public static string GetMuLanStringToDisplay(string mulangString) { MultiLangString mls = new MultiLangString(); mls.SetAsString(mulangString); return(mls.GetStringToDisplay(LANGUAGE)); }
public static int GetActiveEplanVersion() { string eplanVersion = "0"; //default value = 0 to ensure, that EPLAN-version is correctly recognized //try new variable $(EPLAN_VERSION) first, if not valid, no possibility to get active get active EPLAN-version if (PathMap.SubstitutePath("$(EPLAN_VERSION)") != "$(EPLAN_VERSION)") { eplanVersion = PathMap.SubstitutePath("$(EPLAN_VERSION)"); } else { //try different method to get version of executing eplan, in case the actual version doesn't support $(EPLAN_VERSION) string dllFilename = Path.Combine(PathMap.SubstitutePath("$(BIN)"), "Eplan.EplApi.Baseu.dll"); FileInfo fileInfo = new FileInfo(dllFilename); if (fileInfo.Exists) { var versionInfo = FileVersionInfo.GetVersionInfo(dllFilename); //return main-version-infos (without build number) if (versionInfo.ProductVersion.Length >= 5) { eplanVersion = versionInfo.ProductVersion.Substring(0, 5); } } } if (eplanVersion == "0" || eplanVersion == "$(EPLAN_VERSION)") { MultiLangString multiLangErrorText = new MultiLangString(); multiLangErrorText.AddString(ISOCode.Language.L_de_DE, "Die aktuelle EPLAN-Version konnte nicht ermittelt werden."); multiLangErrorText.AddString(ISOCode.Language.L_en_US, "Unable to get actual EPLAN-version."); ISOCode.Language guiLanguage = new Languages().GuiLanguage.GetNumber(); string errorText = multiLangErrorText.GetStringToDisplay(guiLanguage); if (String.IsNullOrEmpty(errorText)) { //if actual GUI-language is not defined in multi-language-string, use en_US-text-version errorText = multiLangErrorText.GetStringToDisplay(ISOCode.Language.L_en_US); } new BaseException(errorText, MessageLevel.Warning).FixMessage(); eplanVersion = "0"; } return(Convert.ToInt16(eplanVersion.Replace(".", string.Empty))); }
//Projekteigenschaft auslesen (wird aus Projektinfo.xml ausgelesen) public bool GetProjectProperty( string strProjectPath, int intPropertyID, string strLanguage, out string strProjectProperty) { string strXmlFilename = strProjectPath + @"\Projectinfo.xml"; // Pfad zur Infodatei des Eplan-Projektes string strReadProperty = string.Empty; // Variable fürs Auslesen der Projekteigenschaft bool bolReadSuccessful = false; // Variable Projekteigenschaft wurde gefunden // Prüfen ob Projekt ausgewählt wurde: if (strProjectPath == "") { // Fehlermeldung MessageBox.Show("Fehler: Es wurde kein Eplan-Projekt ausgewählt.", "GetProjectProperty", MessageBoxButtons.OK, MessageBoxIcon.Error); strProjectProperty = string.Empty; //Leerstring zurückgeben return(false); // Rückgabe Fehler } // Prüfen ob Übergabeparameter gültig (Werte zu klein oder zu groß): if ((intPropertyID < 1) | (intPropertyID > 99999)) { // Fehlermeldung MessageBox.Show("Fehler: Übergabeparameter \"intPropertyID\" enthält ungültige Werte: " + intPropertyID, "GetProjectProperty", MessageBoxButtons.OK, MessageBoxIcon.Error); strProjectProperty = string.Empty; //Leerstring zurückgeben return(false); // Rückgabe Fehler } // Text aus Projectinfo.xml des Projektes auslesen XmlTextReader objReader = new XmlTextReader(strXmlFilename); // Diese Datei lesen while (objReader.Read()) // Nächsten Knoten lesen { if (objReader.HasAttributes) // Nur wenn Attribute vorhanden { while (objReader.MoveToNextAttribute()) // Zum nächsten Attribut wechseln { if (objReader.Name == "id") { if (objReader.Value == intPropertyID.ToString()) { strReadProperty = objReader.ReadString(); bolReadSuccessful = true; // Projekteigenschaft wurde gefunden } } } } } objReader.Close(); // Datei wieder schließen (sonst bleibt diese gesperrt) if (!bolReadSuccessful) // Eigenschaft wurde nicht gefunden { // Fehlermeldung MessageBox.Show("Fehler: Die Projekteigenschaft \"" + intPropertyID + "\" wurde nicht gefunden!", "GetProjectProperty", MessageBoxButtons.OK, MessageBoxIcon.Error); strProjectProperty = string.Empty; //Leerstring zurückgeben return(false); // Rückgabe Fehler } // Gegebenenfalls Sprache aus Multilanguage-String herausfiltern... if (strLanguage != "all") // Nur wenn Sprachfilter gewünscht { MultiLangString objMLText = new MultiLangString(); // Multi Language String zur Bearbeitung objMLText.SetAsString(strReadProperty); ISOCode.Language enuLanguage = ISOCode.Language.L___; // Variable für den ISOCode der gewählten Sprache if (!Enum.TryParse("L_" + strLanguage, out enuLanguage)) // Wandlung der Sprachkennung nicht erfolgreich? { // Fehlermeldung MessageBox.Show("Fehler: Übergabeparameter \"strLanguage\" enthält ungültige Werte: " + strLanguage, "GetProjectProperty", MessageBoxButtons.OK, MessageBoxIcon.Error); strProjectProperty = string.Empty; //Leerstring zurückgeben return(false); // Rückgabe Fehler } strReadProperty = objMLText.GetStringToDisplay(enuLanguage); // Einzelne Sprache auslesen } // Erfolgreich gelesene Eigenschaft zurückgeben... strProjectProperty = strReadProperty; return(true); // Rückgabe OK }