Handling of AI pack through mmicrosoft store.
This commit is contained in:
@@ -3,8 +3,9 @@ using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using Windows.Services.Store;
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
using WinoStorePurchaseResult = Wino.Core.Domain.Enums.StorePurchaseResult;
|
||||
using WinRT.Interop;
|
||||
using WinoAddOnProductType = Wino.Core.Domain.Enums.WinoAddOnProductType;
|
||||
using WinoStorePurchaseResult = Wino.Core.Domain.Enums.StorePurchaseResult;
|
||||
|
||||
namespace Wino.Mail.WinUI.Services;
|
||||
|
||||
@@ -14,11 +15,13 @@ public class StoreManagementService : IStoreManagementService
|
||||
|
||||
private readonly Dictionary<WinoAddOnProductType, string> productIds = new Dictionary<WinoAddOnProductType, string>()
|
||||
{
|
||||
{ WinoAddOnProductType.UNLIMITED_ACCOUNTS, "UnlimitedAccounts" }
|
||||
{ WinoAddOnProductType.UNLIMITED_ACCOUNTS, "UnlimitedAccounts" },
|
||||
{ WinoAddOnProductType.AI_PACK, "AI_PACK" },
|
||||
};
|
||||
|
||||
private readonly Dictionary<WinoAddOnProductType, string> skuIds = new Dictionary<WinoAddOnProductType, string>()
|
||||
{
|
||||
{ WinoAddOnProductType.AI_PACK, "9N2FH734RBVS" },
|
||||
{ WinoAddOnProductType.UNLIMITED_ACCOUNTS, "9P02MXZ42GSM" }
|
||||
};
|
||||
|
||||
@@ -60,6 +63,7 @@ public class StoreManagementService : IStoreManagementService
|
||||
return WinoStorePurchaseResult.AlreadyPurchased;
|
||||
else
|
||||
{
|
||||
InitializeStoreContextWithWindow();
|
||||
var result = await CurrentContext.RequestPurchaseAsync(productKey);
|
||||
|
||||
switch (result.Status)
|
||||
@@ -73,4 +77,39 @@ public class StoreManagementService : IStoreManagementService
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<string?> GetCustomerCollectionsIdAsync(string serviceTicket, string publisherUserId)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(serviceTicket) || string.IsNullOrWhiteSpace(publisherUserId))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
InitializeStoreContextWithWindow();
|
||||
var collectionsId = await CurrentContext.GetCustomerCollectionsIdAsync(serviceTicket, publisherUserId);
|
||||
return string.IsNullOrWhiteSpace(collectionsId) ? null : collectionsId;
|
||||
}
|
||||
|
||||
public async Task<string?> GetCustomerPurchaseIdAsync(string serviceTicket, string publisherUserId)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(serviceTicket) || string.IsNullOrWhiteSpace(publisherUserId))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
InitializeStoreContextWithWindow();
|
||||
var purchaseId = await CurrentContext.GetCustomerPurchaseIdAsync(serviceTicket, publisherUserId);
|
||||
return string.IsNullOrWhiteSpace(purchaseId) ? null : purchaseId;
|
||||
}
|
||||
|
||||
private void InitializeStoreContextWithWindow()
|
||||
{
|
||||
var mainWindow = WinoApplication.MainWindow;
|
||||
if (mainWindow == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
InitializeWithWindow.Initialize(CurrentContext, WindowNative.GetWindowHandle(mainWindow));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user