public IEnumerable <MarketSearchModel> SearchMarkbetByName(string name) { var marketList = new List <MarketSearchModel>(); try { using (var context = new sparrow_dbEntities()) { var markets = context.SPRW_MARKET_LOCATIONS.Where(i => i.CITY.Contains(name)); foreach (var market in markets) { var marketModel = new MarketSearchModel { Longitude = (double)market.LONG_COORDS, Latitude = (double)market.LAT_COORDS, Name = market.CITY, Zip = market.ZIP }; marketList.Add(marketModel); } } } catch (Exception e) { } return(marketList); }
public static List <Market> MarketSearch(string query, string expiry, string prefix, bool getDetail, string excludeList) { IgMarkets igMarkets = new IgMarkets(); string[] quotes = query.Split(','); List <string> excludes = excludeList.Split(',').ToList(); int count = 0; List <Market> parsedList = new List <Market>(); foreach (string ticker in quotes) { MarketSearchModel marketSearch = igMarkets.Get(session, ticker, getDetail); if (marketSearch != null && marketSearch.Markets != null) { foreach (Market market in marketSearch.Markets) { if (market.Expiry == expiry && market.InstrumentType == InstrumentType.Shares && (string.IsNullOrEmpty(prefix) || market.Epic.StartsWith(prefix))) { if (excludes.Count() != 0 && excludes.Where(p => market.InstrumentName.Contains(p.Trim()) && !string.IsNullOrWhiteSpace(p)).Any()) { } else { parsedList.Add(market); count++; } } } } else { Console.WriteLine($"Could not find '{ticker}'."); } } parsedList = parsedList.OrderBy(p => p.InstrumentName).ToList(); parsedList.ForEach(market => Console.WriteLine($"{market.InstrumentName.PadLeft(70)} // {market.Epic.ToString().PadRight(30)} Bid {market.Bid}\tExpiry {market.Expiry} Ticker { market.Ticker } Type { market.InstrumentType }")); Console.WriteLine($"Found {count} stocks."); return(parsedList); }
public MarketSearchModel Get(IgSessionModel igSession, string term, bool getDetail) { string action = "/markets?searchTerm=" + term; string json = igHttpClient.Get(igSession, action, 1); MarketSearchModel result = JsonConvert.DeserializeObject <MarketSearchModel>(json); if (result.Markets != null && getDetail) { foreach (var market in result.Markets) { string ticker = string.Empty; if (!IgEpicMapper.TryLookupCode(market.Epic, out ticker)) { IgEpicModel epicModel = GetEpic(igSession, market.Epic); if (!string.IsNullOrWhiteSpace(epicModel.instrument.chartCode)) { if (epicModel.instrument.country != "US") { if (epicModel.instrument.country == "GB") { epicModel.instrument.country = "LON"; } epicModel.instrument.chartCode += "." + epicModel.instrument.country; } IgEpicMapper.AddCode(market.Epic, epicModel.instrument.chartCode); ticker = epicModel.instrument.chartCode; } } market.Ticker = ticker; Console.WriteLine($"{market.Ticker} {market.InstrumentName}"); } } return(result); }