mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-02-23 14:40:36 +01:00
* Plugins can now build apps * fix tests * fixup * pluginize existing apps * Test fixes part 1 * Test fixes part 2 * Fix Crowdfund namespace * Syntax * More namespace fixes * Markup * Test fix * upstream fixes * Add plugin icon * Fix nullable build warnings * allow pre popualting app creation * Fixes after merge * Make link methods async * Use AppData as parameter for ConfigureLink * GetApps by AppType * Use ConfigureLink on dashboard * Rename method * Add properties to indicate stats support * Property updates * Test fixes * Clean up imports * Fixes after merge --------- Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
43 lines
1.2 KiB
C#
43 lines
1.2 KiB
C#
using System;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using BTCPayServer.Components.AppSales;
|
|
using BTCPayServer.Data;
|
|
using BTCPayServer.Services.Apps;
|
|
using BTCPayServer.Services.Stores;
|
|
using Microsoft.AspNetCore.Identity;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace BTCPayServer.Components.AppTopItems;
|
|
|
|
public class AppTopItems : ViewComponent
|
|
{
|
|
private readonly AppService _appService;
|
|
|
|
public AppTopItems(AppService appService)
|
|
{
|
|
_appService = appService;
|
|
}
|
|
|
|
public async Task<IViewComponentResult> InvokeAsync(string appId, string appType = null)
|
|
{
|
|
var vm = new AppTopItemsViewModel
|
|
{
|
|
Id = appId,
|
|
AppType = appType,
|
|
DataUrl = Url.Action("AppTopItems", "UIApps", new { appId }),
|
|
InitialRendering = HttpContext.GetAppData()?.Id != appId
|
|
};
|
|
if (vm.InitialRendering)
|
|
return View(vm);
|
|
|
|
var app = HttpContext.GetAppData();
|
|
var entries = await _appService.GetItemStats(app);
|
|
vm.SalesCount = entries.Select(e => e.SalesCount).ToList();
|
|
vm.Entries = entries.ToList();
|
|
vm.AppType = app.AppType;
|
|
vm.AppUrl = await _appService.ConfigureLink(app, app.AppType);
|
|
|
|
return View(vm);
|
|
}
|
|
}
|