|
1 | 1 | using Microsoft.Maui.Graphics.Platform; |
2 | | -using System.Collections.ObjectModel; |
3 | 2 | using System.Reflection; |
| 3 | +using IImage = Microsoft.Maui.Graphics.IImage; |
4 | 4 |
|
5 | 5 | namespace MarketCap |
6 | 6 | { |
7 | 7 | public class MarketCapViewModel |
8 | 8 | { |
9 | 9 | public List<MarketCapModel> MarketCapData { get; set; } |
10 | | - public ObservableCollection<Brush> PaletteBrushes { get; set; } |
11 | 10 |
|
12 | 11 | public MarketCapViewModel() |
13 | 12 | { |
14 | | - MarketCapData = new List<MarketCapModel>(); |
15 | | - MarketCapData.Add(new MarketCapModel { Size = 54000, Gdp = 194.5, Company = 4642, Name = "United States", ImageIcon = GetImage("UnitedStates") }); |
16 | | - MarketCapData.Add(new MarketCapModel { Size = 10088, Gdp = 65.1, Company = 5346, Name = "China", ImageIcon = GetImage("China") }); |
17 | | - MarketCapData.Add(new MarketCapModel { Size = 6245, Gdp = 146.2, Company = 3865, Name = "Japan", ImageIcon = GetImage("Japan") }); |
18 | | - MarketCapData.Add(new MarketCapModel { Size = 5522, Gdp = 140.1, Company = 5451, Name = "India", ImageIcon = GetImage("India") }); |
19 | | - MarketCapData.Add(new MarketCapModel { Size = 3894, Gdp = 84.9, Company = 457, Name = "France", ImageIcon = GetImage("France") }); |
20 | | - MarketCapData.Add(new MarketCapModel { Size = 3265, Gdp = 160.7, Company = 3534, Name = "Canada", ImageIcon = GetImage("Canada") }); |
21 | | - MarketCapData.Add(new MarketCapModel { Size = 2875, Gdp = 347.0, Company = 269, Name = "Saudi Arabia", ImageIcon = GetImage("SaudiArabia") }); |
22 | | - MarketCapData.Add(new MarketCapModel { Size = 2584, Gdp = 100, Company = 1646, Name = "United Kingdom", ImageIcon = GetImage("UnitedKingdom") }); |
23 | | - MarketCapData.Add(new MarketCapModel { Size = 2182, Gdp = 60, Company = 429, Name = "Germany", ImageIcon = GetImage("Germany") }); |
24 | | - MarketCapData.Add(new MarketCapModel { Size = 2020, Gdp = 267.1, Company = 1627, Name = "Taiwan", ImageIcon = GetImage("Taiwan") }); |
25 | | - MarketCapData.Add(new MarketCapModel { Size = 1884, Gdp = 133.5, Company = 2446, Name = "South Korea", ImageIcon = GetImage("SouthKorea") }); |
26 | | - MarketCapData.Add(new MarketCapModel { Size = 1743, Gdp = 390.1, Company = 546, Name = "Iran", ImageIcon = GetImage("Iran") }); |
27 | | - MarketCapData.Add(new MarketCapModel { Size = 1723, Gdp = 129.3, Company = 1976, Name = "Australia", ImageIcon = GetImage("Australia") }); |
28 | | - MarketCapData.Add(new MarketCapModel { Size = 1705, Gdp = 132.3, Company = 103, Name = "Netherlands", ImageIcon = GetImage("Netherlands") }); |
29 | | - MarketCapData.Add(new MarketCapModel { Size = 1640, Gdp = 267.6, Company = 236, Name = "Switzerland", ImageIcon = GetImage("Switzerland") }); |
30 | | - MarketCapData.Add(new MarketCapModel { Size = 1334, Gdp = 82.2, Company = 1472, Name = "Spain", ImageIcon = GetImage("Spain") }); |
31 | | - MarketCapData.Add(new MarketCapModel { Size = 1230, Gdp = 348.3, Company = 237, Name = "South Africa", ImageIcon = GetImage("SouthAfrica") }); |
32 | | - MarketCapData.Add(new MarketCapModel { Size = 1009, Gdp = 162, Company = 832, Name = "Sweden", ImageIcon = GetImage("Sweden") }); |
33 | | - MarketCapData.Add(new MarketCapModel { Size = 873, Gdp = 172.3, Company = 153, Name = "United Arab Emirates", ImageIcon = GetImage("UnitedArabEmirates") }); |
34 | | - MarketCapData.Add(new MarketCapModel { Size = 863, Gdp = 68.4, Company = 361, Name = "Brazil", ImageIcon = GetImage("Brazil") }); |
35 | | - MarketCapData.Add(new MarketCapModel { Size = 799, Gdp = 195, Company = 178, Name = "Denmark", ImageIcon = GetImage("Denmark") }); |
36 | | - MarketCapData.Add(new MarketCapModel { Size = 778, Gdp = 46.3, Company = 903, Name = "Indonesia", ImageIcon = GetImage("Indonesia") }); |
37 | | - MarketCapData.Add(new MarketCapModel { Size = 747, Gdp = 36.5, Company = 290, Name = "Italy", ImageIcon = GetImage("Italy") }); |
38 | | - MarketCapData.Add(new MarketCapModel { Size = 715, Gdp = 108.8, Company = 117, Name = "Belgium", ImageIcon = GetImage("Belgium") }); |
39 | | - MarketCapData.Add(new MarketCapModel { Size = 619, Gdp = 132.7, Company = 425, Name = "Singapore", ImageIcon = GetImage("Singapore") }); |
40 | | - MarketCapData.Add(new MarketCapModel { Size = 604, Gdp = 122.0, Company = 810, Name = "Thailand", ImageIcon = GetImage("Thailand") }); |
41 | | - MarketCapData.Add(new MarketCapModel { Size = 530, Gdp = 46.8, Company = 195, Name = "Russia", ImageIcon = GetImage("Russia") }); |
42 | | - MarketCapData.Add(new MarketCapModel { Size = 454, Gdp = 31.0, Company = 133, Name = "Mexico", ImageIcon = GetImage("Mexico") }); |
43 | | - MarketCapData.Add(new MarketCapModel { Size = 381, Gdp = 93.7, Company = 963, Name = "Malaysia", ImageIcon = GetImage("Malaysia") }); |
44 | | - MarketCapData.Add(new MarketCapModel { Size = 377, Gdp = 71.7, Company = 340, Name = "Norway", ImageIcon = GetImage("Norway") }); |
45 | | - MarketCapData.Add(new MarketCapModel { Size = 330, Gdp = 36.4, Company = 461, Name = "Turkey", ImageIcon = GetImage("Turkey") }); |
46 | | - MarketCapData.Add(new MarketCapModel { Size = 285, Gdp = 94.8, Company = 400, Name = "Chile", ImageIcon = GetImage("Chile") }); |
47 | | - MarketCapData.Add(new MarketCapModel { Size = 269, Gdp = 87.5, Company = 134, Name = "Finland", ImageIcon = GetImage("Finland") }); |
48 | | - MarketCapData.Add(new MarketCapModel { Size = 269, Gdp = 51.4, Company = 518, Name = "Israel", ImageIcon = GetImage("Israel") }); |
49 | | - MarketCapData.Add(new MarketCapModel { Size = 246, Gdp = 62.0, Company = 402, Name = "Vietnam", ImageIcon = GetImage("Vietnam") }); |
| 13 | + MarketCapData = new List<MarketCapModel>(ReadCSV()); |
50 | 14 | } |
51 | | - private Microsoft.Maui.Graphics.IImage? GetImage(string resourcePath) |
| 15 | + |
| 16 | + public static IEnumerable<MarketCapModel> ReadCSV() |
| 17 | + { |
| 18 | + Assembly executingAssembly = typeof(App).GetTypeInfo().Assembly; |
| 19 | + Stream inputStream = executingAssembly.GetManifestResourceStream("MarketCap.Resources.Raw.MarketData.csv"); |
| 20 | + |
| 21 | + if (inputStream == null) |
| 22 | + { |
| 23 | + throw new FileNotFoundException("CSV file not found."); |
| 24 | + } |
| 25 | + |
| 26 | + string line; |
| 27 | + List<string> lines = new(); |
| 28 | + |
| 29 | + using StreamReader reader = new(inputStream); |
| 30 | + // Skip the header line |
| 31 | + reader.ReadLine(); |
| 32 | + |
| 33 | + while ((line = reader.ReadLine()) != null) |
| 34 | + { |
| 35 | + lines.Add(line); |
| 36 | + } |
| 37 | + |
| 38 | + return lines.Select(line => |
| 39 | + { |
| 40 | + string[] data = line.Split(','); |
| 41 | + |
| 42 | + return new MarketCapModel |
| 43 | + { |
| 44 | + Size = Convert.ToDouble(data[1]), |
| 45 | + Gdp = Convert.ToDouble(data[2]), |
| 46 | + Company = Convert.ToInt32(data[3]), |
| 47 | + Name = data[0], |
| 48 | + ImageIcon = GetImage(data[4]) // Assuming the ImageIcon is the 5th column |
| 49 | + }; |
| 50 | + }); |
| 51 | + } |
| 52 | + |
| 53 | + private static IImage? GetImage(string resourcePath) |
52 | 54 | { |
53 | 55 | Assembly assembly = typeof(MainPage).GetTypeInfo().Assembly; |
54 | 56 | using Stream? stream = assembly.GetManifestResourceStream("MarketCap.Resources.Images." + resourcePath + ".png"); |
|
0 commit comments