예제 #1
0
        /// <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;
        }
예제 #2
0
 /// <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;
 }