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