Exemple #1
0
        /// <summary>
        /// アイテムの購入.
        /// </summary>
        protected BuyFailureReason Purchase(string productId, string developerPayload = null)
        {
            var result = PurchaseInternal(productId, developerPayload);

            if (result == BuyFailureReason.None)
            {
                var product = StoreProducts.FirstOrDefault(x => x.definition.storeSpecificId == productId);

                if (product != null)
                {
                    var builder = new StringBuilder();

                    builder.AppendLine("------- PurchaseProducts -------");
                    builder.AppendLine(GetProductString(product)).AppendLine();

                    UnityConsole.Event(ConsoleEventName, ConsoleEventColor, builder.ToString());
                }
            }
            else
            {
                var message = string.Format("Purchase Error. ({0})", result);

                UnityConsole.Event(ConsoleEventName, ConsoleEventColor, message, LogType.Error);
            }

            return(result);
        }
        /// <summary>
        /// アイテムの購入.
        /// </summary>
        protected BuyFailureReason Purchase(string productId, string developerPayload = null)
        {
            var result = PurchaseInternal(productId, developerPayload);

            if (result == BuyFailureReason.None)
            {
                var product = StoreProducts.FirstOrDefault(x => x.definition.storeSpecificId == productId);

                if (product != null)
                {
                    var builder = new StringBuilder();

                    builder.AppendLine("------- PurchaseProducts -------");
                    builder.AppendLine(GetProductString(product)).AppendLine();

                    Debug.Log(builder.ToString());
                }
            }
            else
            {
                Debug.LogErrorFormat("[PurchaseManager] Purchase Error. ({0})", result);
            }

            return(result);
        }
        public async Task GetStoreInformation(string id)
        {
            Guid StoreId = Guid.Parse(id);

            var store = await StoreDataStore.GetAvailableStoreInformation(StoreId);

            StoreImg         = store.StoreImage;
            StoreName        = store.StoreName;
            Title            = store.StoreName;
            StoreDescription = store.StoreDescription;

            if (StoreProducts.Count > 0)
            {
                StoreProducts.Clear();
            }


            foreach (var product in store.Products)
            {
                var productPresenter = new ProductPresenter(product);
                if (StoreProducts.Where(p => p.ProductId == productPresenter.ProductId).FirstOrDefault() == null)
                {
                    StoreProducts.Add(productPresenter);
                }
            }

            await GroupByProductCategory(StoreProducts);

            //if (ProductCategoryPresenters.Count() > 0)
            //{
            //    ProductCategoryPresenters.Clear();
            //}

            //var group = StoreProducts.GroupBy(p => p.ProductType);

            //foreach (var item in group)
            //{
            //    var _productCategory = new ProductCategoryPresenter(item.Key.ToString());

            //    ProductCategoryPresenters.Add(_productCategory);
            //}


            if (StoreWorkoutHours.Count() == 0)
            {
                foreach (var workhour in store.WorkHours)
                {
                    if (workhour.Day == DateTime.Today.DayOfWeek.ToString())
                    {
                        WorkHour = workhour;
                    }

                    StoreWorkoutHours.Add(workhour);
                }
            }
        }
Exemple #4
0
        /// <summary>
        /// IStoreListenerの初期化完了通知.
        /// </summary>
        public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
        {
            storeController        = controller;
            storeExtensionProvider = extensions;

            // 各ストアの拡張処理.
            if (storePurchasing != null)
            {
                storePurchasing.OnStoreListenerInitialized(controller, extensions);
            }

            // ストアに販売中のアイテムを更新.
            StoreProducts = controller.products.all;

            if (StoreProducts.Any())
            {
                var builder = new StringBuilder();

                builder.AppendLine("------- StoreProducts -------");

                foreach (var item in StoreProducts)
                {
                    builder.AppendLine(GetProductString(item)).AppendLine();
                }

                UnityConsole.Event(ConsoleEventName, ConsoleEventColor, builder.ToString());
            }

            // Pending状態のアイテムを更新.
            foreach (var product in controller.products.all)
            {
                UpdatePendingProduct(product, PurchaseProcessingResult.Pending);
            }

            if (PendingProducts.Any())
            {
                var builder = new StringBuilder();

                builder.AppendLine("------- PendingProducts -------");

                foreach (var item in PendingProducts)
                {
                    builder.AppendLine(GetProductString(item)).AppendLine();
                }

                UnityConsole.Event(ConsoleEventName, ConsoleEventColor, builder.ToString());
            }

            if (onStoreProductsUpdate != null)
            {
                onStoreProductsUpdate.OnNext(StoreProducts);
            }

            IsPurchaseReady = true;
        }
        async Task LoadInventory(string selectedproductType)
        {
            StoreProducts.Clear();

            ProductType _productType = (ProductType)Enum.Parse(typeof(ProductType), selectedproductType);

            //Guid guidStoreId = Guid.Parse(StoreId);

            var data = await productDataStore.GetSpecificProductTypeFromStore(App.CurrentStore.StoreId, _productType);

            foreach (var item in data)
            {
                var productPresenter = new ProductPresenter(item);
                StoreProducts.Add(productPresenter);
            }
        }