public void Initialize(IInternalStoreListener listener, HashSet <ProductDefinition> products) { m_Listener = listener; m_Store.Initialize(this); var prods = products.Select(x => new Product(x, new ProductMetadata())).ToArray(); this.products = new ProductCollection(prods); var productCollection = new ReadOnlyCollection <ProductDefinition>(products.ToList()); // Start the initialisation process by fetching product metadata. m_Store.RetrieveProducts(productCollection); }