public IEnumerable <string> GetProducts(string content, int lineNumber)
        {
            SLogger.LogDebugFormat("Line number {0} is a question.", lineNumber);

            if (string.IsNullOrEmpty(content) || string.IsNullOrWhiteSpace(content))
            {
                SLogger.LogWarnFormat("Line number {0} does not have valid product(s). Skipping...", lineNumber);
                return(null);
            }

            string[] products = content.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);

            foreach (string product in products)
            {
                if (!this.productsList.Contains(product))
                {
                    SLogger.LogInfoFormat("Product List (derived by reading the input lines) does not contain product uptil now:{0} at line number {1}.\nSkipping...",
                                          product, lineNumber);

                    return(null);
                }
            }

            return(products);
        }
 private void InterpretProduct <T>(IDictionary <string, T> productCache, string product, T productValue)
 {
     if (!productCache.ContainsKey(product))
     {
         productCache.Add(product, productValue);
     }
     else
     {
         SLogger.LogDebugFormat("ProductCache:{0} already contains the product:{1} with value:{2}. New value that missed update:{3}" +
                                "\n This can possibly be a false positive due to Intergalactic Products being 'Tagged' with Earthy Products.",
                                productCache.GetType(), product, productCache[product], productValue);
     }
 }