Files
Wino-Mail/Wino.Mail.WinUI/Selectors/WinoAddOnTemplateSelector.cs
T
2026-03-19 01:50:14 +01:00

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