/// <summary> /// Wertet Antwort des Yahoo Webdienstes /// </summary> /// <param name="csv">auszwertende CSV-Datei als string</param> /// <returns>Liste von Aktiengesellschaften</returns> private List<Aktie> ParseAktienCsv(string csv) { // Aktienkursinformationen in Liste speichern var aktienList = new List<Aktie>(); // Geparse Aktieninfos werden in Array zwischengespeichert var werte = new double[10]; using (var valueStream = new StringReader(csv)) { while (valueStream.Peek() > -1) { var aktie = new Aktie(); // Zeile aufteilen string[] csvWerte = valueStream.ReadLine().Split(','); if (string.IsNullOrWhiteSpace(csvWerte[0])) { continue; } for (int i = 0; i < csvWerte.Length; i++) { // Wert normalisieren (" und % entfernen) string normalisierterText = csvWerte[i].Replace("\"", "") .Replace("%", ""); if (i == 0) { // 1. Wert ist der Name der Aktie aktie.Name = normalisierterText; } else { // Alle weiteren Werte sind vom Typ double // Wert parsen nach englischen Format parsen if (normalisierterText == "N/A") { // Es steht kein Wert zur Verfügung werte[i - 1] = double.NaN; } else { double value = double.Parse(normalisierterText, NumberStyles.Currency, _parsingLanguage); werte[i - 1] = value; } } } // Wertzuweisung in Abstimmung mit Symbolkombination aktie.Wert = werte[0]; aktie.Endwert = werte[1]; aktie.Startwert = werte[2]; aktie.ÄnderungNominal = werte[3]; aktie.ÄnderungProzentual = werte[4]; aktie.Tagestief = werte[5]; aktie.Tageshoch = werte[6]; aktie.Jahrestief = werte[7]; aktie.Jahreshoch = werte[8]; aktie.Volumen = werte[9]; // Geparste Aktieninfos dem Ergebnis hinzufügen if (aktie.IsValid()) { aktienList.Add(aktie); } } } return aktienList; }
/// <summary> /// Initialisierung der Werte im ViewModel /// </summary> /// <param name="aktie">neue Werte für das ViewModels</param> public void LoadValues(Aktie aktie) { Symbol = aktie.Symbol; Name = aktie.Name; ÄnderungNominal = aktie.ÄnderungNominal; ÄnderungProzentual = aktie.ÄnderungProzentual; Volumen = aktie.Volumen; Wert = aktie.Wert; Jahreshoch = aktie.Jahreshoch; Jahrestief = aktie.Jahrestief; Tageshoch = aktie.Tageshoch; Tagestief = aktie.Tagestief; }