31 lines
1.2 KiB
C#
31 lines
1.2 KiB
C#
using System;
|
|
using Microsoft.UI.Xaml;
|
|
using Microsoft.UI.Xaml.Controls;
|
|
using Wino.Core.Domain.Enums;
|
|
using Wino.Core.ViewModels.Data;
|
|
|
|
namespace Wino.Selectors;
|
|
|
|
public partial class WinoAddOnTemplateSelector : DataTemplateSelector
|
|
{
|
|
public DataTemplate? NotPurchasedTemplate { get; set; }
|
|
public DataTemplate? AiPackPurchasedTemplate { get; set; }
|
|
public DataTemplate? UnlimitedAccountsPurchasedTemplate { get; set; }
|
|
|
|
protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
|
|
{
|
|
if (item is not WinoAddOnItemViewModel addOn)
|
|
throw new ArgumentException(nameof(item));
|
|
|
|
if (!addOn.IsPurchased)
|
|
return NotPurchasedTemplate ?? throw new ArgumentException(nameof(NotPurchasedTemplate));
|
|
|
|
return addOn.ProductType switch
|
|
{
|
|
WinoAddOnProductType.AI_PACK => AiPackPurchasedTemplate ?? throw new ArgumentException(nameof(AiPackPurchasedTemplate)),
|
|
WinoAddOnProductType.UNLIMITED_ACCOUNTS => UnlimitedAccountsPurchasedTemplate ?? throw new ArgumentException(nameof(UnlimitedAccountsPurchasedTemplate)),
|
|
_ => NotPurchasedTemplate ?? throw new ArgumentException(nameof(NotPurchasedTemplate))
|
|
};
|
|
}
|
|
}
|