public async Task <IReadOnlyList <IScheduleSettings> > GetFilteredAsync(string marketId = null)
        {
            var brokerSchedule = await GetBrokerScheduleAsync();

            if (!string.IsNullOrEmpty(marketId))
            {
                //We need only platform settings
                if (marketId == _platformSettings.PlatformMarketId)
                {
                    return(MapPlatformSchedule(brokerSchedule));
                }

                var marketSettingsById = await _marketSettingsRepository.GetByIdAsync(marketId);

                if (marketSettingsById == null)
                {
                    return(new List <IScheduleSettings>());
                }

                return(MapMarketSchedule(marketSettingsById, brokerSchedule.Weekends));
            }

            // add all markets and platform schedules
            var allMarketSettings = await _marketSettingsRepository.GetAllMarketSettingsAsync();

            var allMarketSchedules = allMarketSettings
                                     .SelectMany(x => MapMarketSchedule(x, brokerSchedule.Weekends))
                                     .ToList();
            var platformSchedules = MapPlatformSchedule(brokerSchedule);

            allMarketSchedules.AddRange(platformSchedules);

            return(allMarketSchedules);
        }
 public Task <IReadOnlyList <MarketSettings> > GetAllMarketSettingsAsync()
 => _marketSettingsRepository.GetAllMarketSettingsAsync();
Esempio n. 3
0
        public async Task <IReadOnlyList <IMarket> > GetAllAsync()
        {
            var marketSettings = await _marketSettingsRepository.GetAllMarketSettingsAsync();

            return(marketSettings.Select(x => new Market(x.Id, x.Name)).ToList());
        }