/// <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);
        }