Files
Mercados-Web/src/Mercados.Infrastructure/DataFetchers/TickerNameMapping.cs

74 lines
3.2 KiB
C#

namespace Mercados.Infrastructure.DataFetchers
{
/// <summary>
/// Clase estática que proporciona un mapeo entre los tickers de acciones y sus nombres descriptivos.
/// </summary>
public static class TickerNameMapping
{
/// <summary>
/// Diccionario privado que almacena los tickers como claves y los nombres de las empresas como valores.
/// La comparación de claves no distingue entre mayúsculas y minúsculas.
/// </summary>
private static readonly Dictionary<string, string> Names = new(StringComparer.OrdinalIgnoreCase)
{
// USA
{ "SPY", "S&P 500 ETF" },
{ "AAPL", "Apple Inc." },
{ "AMZN", "Amazon.com, Inc." },
{ "NVDA", "NVIDIA Corp." },
{ "AMD", "Advanced Micro Devices" },
{ "KO", "The Coca-Cola Company" },
{ "BRK-B", "Berkshire Hathaway Inc." },
{ "GLD", "SPDR Gold Shares" },
{ "XLF", "Financial Select Sector SPDR" },
{ "XLI", "Industrial Select Sector SPDR" },
{ "XLE", "Energy Select Sector SPDR" },
{ "XLK", "Technology Select Sector SPDR" },
{ "MELI", "MercadoLibre, Inc." },
{ "MSFT", "Microsoft Corp." },
{ "GLOB", "Globant" },
// ADRs Argentinos que cotizan en EEUU
{ "YPF", "YPF S.A. (ADR)" },
{ "GGAL", "Grupo Financiero Galicia (ADR)" },
{ "BMA", "Banco Macro (ADR)" },
{ "LOMA", "Loma Negra (ADR)" },
{ "PAM", "Pampa Energía (ADR)" },
{ "TEO", "Telecom Argentina (ADR)" },
{ "TGS", "Transportadora de Gas del Sur (ADR)" },
{ "EDN", "Edenor (ADR)" },
{ "CRESY", "Cresud (ADR)" },
{ "CEPU", "Central Puerto (ADR)" },
{ "BBAR", "BBVA Argentina (ADR)" },
// Argentina Local
{ "^GSPC", "S&P 500 Index" }, // Lo dejamos por si Yahoo lo devuelve
{ "^MERV", "S&P Merval" },
{ "GGAL.BA", "Grupo Financiero Galicia" },
{ "YPFD.BA", "YPF S.A." },
{ "PAMP.BA", "Pampa Energía" },
{ "BMA.BA", "Banco Macro" },
{ "COME.BA", "Sociedad Comercial del Plata" },
{ "TECO2.BA", "Telecom Argentina" },
{ "EDN.BA", "Edenor" },
{ "CRES.BA", "Cresud" },
{ "TXAR.BA", "Ternium Argentina" },
{ "MIRG.BA", "Mirgor" },
{ "CEPU.BA", "Central Puerto" },
{ "LOMA.BA", "Loma Negra" },
{ "VALO.BA", "Banco de Valores" },
{ "MELI.BA", "MercadoLibre (CEDEAR)" }, // Aclaramos que es el CEDEAR
};
/// <summary>
/// Obtiene el nombre descriptivo asociado a un ticker.
/// </summary>
/// <param name="ticker">El ticker de la acción (ej. "AAPL").</param>
/// <returns>El nombre completo de la empresa si se encuentra en el mapeo; de lo contrario, null.</returns>
public static string? GetName(string ticker)
{
// Devuelve el nombre si existe, o null si no se encuentra la clave.
return Names.TryGetValue(ticker, out var name) ? name : $"Ticker no reconocido: {ticker}";
}
}
}