/// <summary> /// Asynchronously gets the market mapping Id of the specified market /// </summary> /// <param name="cultures">The list of <see cref="CultureInfo" /> to fetch <see cref="IMarketMapping" /></param> /// <returns>A <see cref="Task{IMarketMappingId}" /> representing the asynchronous operation</returns> public async Task <IEnumerable <IMarketMapping> > GetMappedMarketIdAsync(IEnumerable <CultureInfo> cultures) { if (_producer.Equals(_producerManager.Get(5))) { return(null); } var marketDescription = await GetMarketDescriptorAsync(cultures).ConfigureAwait(false); var marketMappings = GetMarketMapping(marketDescription); if (marketMappings == null || !marketMappings.Any()) { return(null); } var mappings = new List <IMarketMapping>(); foreach (var mappingData in marketMappings) { var sov = GetSovValue(mappingData.SovTemplate); if (mappingData.MarketSubTypeId != null || _producer.Equals(_producerManager.Get("LO"))) { mappings.Add(new LoMarketMapping(mappingData.MarketTypeId, mappingData.MarketSubTypeId ?? -1, sov)); } else { mappings.Add(new LcooMarketMapping(mappingData.MarketTypeId, sov)); } } return(mappings); }