protected override void Initialize(string[] productIds, InitializatedDelegate onInitialized, InitializationFailedDelegate onFailed)
        {
            if (productIds == null || productIds.Length == 0)
                throw new ArgumentException("InAppPurchaseManager: At least one product id is required.");

            try
            {
                IsInitalized = false;

                RequestProductInformation(productIds, (products, invalidProductIds) =>
                {
                    foreach (var product in products)
                    {
                        productDictionary[product.ProductId] = product;
                    }

                    foreach (var id in invalidProductIds)
                    {
                        Console.WriteLine("InAppPurchaseManager: Product id '{0}' is not valid.", id);
                        productDictionary[id] = new InvalidProductInformation(id);
                    }

                    if (productDictionary.Count == 0)
                    {
                        OnInitializationFailed(new Exception("InAppPurchaseManager: There are not valid products."));
                    }
                    else
                    {
                        IsInitalized = true;
                        if (onInitialized != null)
                            onInitialized();
                    }
                },
                ex =>
                {
                    if (onFailed != null) onFailed(ex);
                });
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                if (onFailed != null)
                {
                    onFailed(new InAppPurchaseException("Error initializing products.", 0, ex));
                }
            }
        }
        protected override void Initialize(string[] productIds, InitializatedDelegate onInitialized, InitializationFailedDelegate onFailed)
        {
            if (productIds == null || productIds.Length == 0)
                throw new ArgumentException("InAppPurchaseManager: At least one product id is required.");

            throw new NotImplementedException();
        }
 protected abstract void Initialize(string[] productIds, InitializatedDelegate onInitialized, InitializationFailedDelegate onFailed);