/// <summary> /// Create a market session /// </summary> /// <param name="type"></param> /// <param name="start"></param> /// <param name="end"></param> /// <param name="comment"></param> public LocalMarketSession(MarketSessionType type, TimeSpan start, TimeSpan end, string comment = "") { Start = start; End = end; Type = type; Comment = comment; }
/// <summary> /// Load regular session timings from cache for given exchangeModel /// </summary> private void LoadRegularSessions() { //Check if it is already loaded if (IsRegularLoaded) { return; } //get from config var config = Config.MarketHourConfig.FirstOrDefault(x => x.Exchanges.Contains(ExchangeName)); //Check if we have configuration if (config == null) { throw new Exception($"Cannot load correct exchangeModel market hours. Tried loading: {ExchangeName}"); } //Set helper function void Add(MarketHoursSessionConfig loaded, Dictionary <MarketSessionType, LocalMarketSession> sessions) { //Set variables MarketSessionType type = (MarketSessionType)Enum.Parse(typeof(MarketSessionType), loaded.Session.ToLower(), true); TimeSpan start = TimeSpan.Parse(loaded.Start); TimeSpan end = TimeSpan.Parse(loaded.End); //Add to input sessions.Add(type, new LocalMarketSession(type, start, end, "Regular")); } //Get for each day _monday = new Dictionary <MarketSessionType, LocalMarketSession>(); config.Monday.ForEach(x => Add(x, _monday)); _tuesday = new Dictionary <MarketSessionType, LocalMarketSession>(); config.Tuesday.ForEach(x => Add(x, _tuesday)); _wednesday = new Dictionary <MarketSessionType, LocalMarketSession>(); config.Wednesday.ForEach(x => Add(x, _wednesday)); _thursday = new Dictionary <MarketSessionType, LocalMarketSession>(); config.Thursday.ForEach(x => Add(x, _thursday)); _friday = new Dictionary <MarketSessionType, LocalMarketSession>(); config.Friday.ForEach(x => Add(x, _friday)); _saturday = new Dictionary <MarketSessionType, LocalMarketSession>(); config.Saturday.ForEach(x => Add(x, _saturday)); _sunday = new Dictionary <MarketSessionType, LocalMarketSession>(); config.Sunday.ForEach(x => Add(x, _sunday)); }