Filter unavailable items in controller

This commit is contained in:
Umar Bolatov
2021-09-12 21:45:30 -07:00
committed by Andrew Camilleri
parent c267cf0e9c
commit 2dcd7db797
3 changed files with 6 additions and 9 deletions

View File

@@ -92,7 +92,7 @@ namespace BTCPayServer.Controllers
Prefixed = new[] { 0, 2 }.Contains(numberFormatInfo.CurrencyPositivePattern),
SymbolSpace = new[] { 2, 3 }.Contains(numberFormatInfo.CurrencyPositivePattern)
},
Items = _AppService.Parse(settings.Template, settings.Currency),
Items = _AppService.Parse(settings.Template, settings.Currency, true),
ButtonText = settings.ButtonText,
CustomButtonText = settings.CustomButtonText,
CustomTipText = settings.CustomTipText,
@@ -141,7 +141,7 @@ namespace BTCPayServer.Controllers
ViewPointOfSaleViewModel.Item choice = null;
if (!string.IsNullOrEmpty(choiceKey))
{
var choices = _AppService.Parse(settings.Template, settings.Currency);
var choices = _AppService.Parse(settings.Template, settings.Currency, true);
choice = choices.FirstOrDefault(c => c.Id == choiceKey);
if (choice == null)
return NotFound();
@@ -177,7 +177,7 @@ namespace BTCPayServer.Controllers
AppService.TryParsePosCartItems(posData, out var cartItems))
{
var choices = _AppService.Parse(settings.Template, settings.Currency);
var choices = _AppService.Parse(settings.Template, settings.Currency, true);
foreach (var cartItem in cartItems)
{
var itemChoice = choices.FirstOrDefault(c => c.Id == cartItem.Key);
@@ -314,7 +314,7 @@ namespace BTCPayServer.Controllers
ViewPointOfSaleViewModel.Item choice = null;
if (!string.IsNullOrEmpty(request.ChoiceKey))
{
var choices = _AppService.Parse(settings.PerksTemplate, settings.TargetCurrency);
var choices = _AppService.Parse(settings.PerksTemplate, settings.TargetCurrency, true);
choice = choices.FirstOrDefault(c => c.Id == request.ChoiceKey);
if (choice == null)
return NotFound("Incorrect option provided");

View File

@@ -311,7 +311,7 @@ namespace BTCPayServer.Services.Apps
var serializer = new SerializerBuilder().Build();
return serializer.Serialize(mappingNode);
}
public ViewPointOfSaleViewModel.Item[] Parse(string template, string currency)
public ViewPointOfSaleViewModel.Item[] Parse(string template, string currency, bool filterUnavailable = false)
{
if (string.IsNullOrWhiteSpace(template))
return Array.Empty<ViewPointOfSaleViewModel.Item>();
@@ -341,6 +341,7 @@ namespace BTCPayServer.Services.Apps
PaymentMethods = c.GetDetailStringList("payment_methods"),
Unavailable = c.GetDetailString("unavailable") == "true"
})
.Where(c => filterUnavailable ? !c.Unavailable : true)
.ToArray();
}

View File

@@ -26,10 +26,6 @@
: item.BuyButtonText)
.Replace("{0}",item.Price.Formatted)
.Replace("{Price}",item.Price.Formatted);
@if (item.Unavailable) {
continue;
}
<div class="card px-0" data-id="@x">
@if (!String.IsNullOrWhiteSpace(item.Image))
{