Files
Navigator/MarketDataLib/MarketDataModel/EconomicIndicator.cs
2026-02-19 09:09:56 -05:00

72 lines
2.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
namespace MarketData.MarketDataModel
{
public class EconomicIndicators : List<EconomicIndicator>
{
public EconomicIndicators()
{
}
public EconomicIndicators(List<EconomicIndicator> economicIndicators)
{
foreach(EconomicIndicator economicIndicator in economicIndicators)
{
Add(economicIndicator);
}
}
public List<Int32> GetYears()
{
if(0==Count)return null;
List<Int32> years = (from EconomicIndicator economicIndicator in this select economicIndicator.Year).Distinct().ToList();
years.Sort();
return years;
}
public Dictionary<String,EconomicIndicators> GetDictionary()
{
Dictionary<String,EconomicIndicators> dictionary=new Dictionary<String,EconomicIndicators>();
if(0==Count)return null;
for (int index = 0; index < Count; index++)
{
EconomicIndicator economicIndicator=this[index];
if(!dictionary.ContainsKey(economicIndicator.CountryCode))
{
List<EconomicIndicator> list=new List<EconomicIndicator>();
dictionary.Add(economicIndicator.CountryCode,new EconomicIndicators());
}
EconomicIndicators economicIndicators=dictionary[economicIndicator.CountryCode];
economicIndicators.Add(economicIndicator);
}
List<String> keys=new List<String>(dictionary.Keys);
foreach(String key in keys)
{
dictionary[key].Sort(new EconomicIndicatorByYear());
}
return dictionary;
}
}
public class EconomicIndicatorByYear : IComparer<EconomicIndicator>
{
public int Compare(EconomicIndicator p1,EconomicIndicator p2)
{
return p1.Year.CompareTo(p2.Year);
}
}
public class EconomicIndicator
{
public String Source{get;set;}
public String CountryName{get;set;}
public String CountryCode{get;set;}
public String IndicatorName{get;set;}
public String IndicatorCode{get;set;}
public double IndicatorValue{get;set;}
public int Year{get;set;}
}
}