From b71eb12e2354861cfdb92c12dc25258f20ca9e59 Mon Sep 17 00:00:00 2001 From: Umar Bolatov Date: Thu, 27 Aug 2020 01:31:33 -0700 Subject: [PATCH] Add store sort (#1861) close #1837 --- .../Controllers/UserStoresController.cs | 33 +++++++++++++++- BTCPayServer/Views/Apps/ListApps.cshtml | 39 +++++++++---------- .../Views/UserStores/ListStores.cshtml | 30 +++++++++++++- 3 files changed, 79 insertions(+), 23 deletions(-) diff --git a/BTCPayServer/Controllers/UserStoresController.cs b/BTCPayServer/Controllers/UserStoresController.cs index 4839901d7..7f5077117 100644 --- a/BTCPayServer/Controllers/UserStoresController.cs +++ b/BTCPayServer/Controllers/UserStoresController.cs @@ -1,3 +1,4 @@ +using System.Linq; using System.Threading.Tasks; using BTCPayServer.Data; using BTCPayServer.Models; @@ -70,10 +71,40 @@ namespace BTCPayServer.Controllers } [HttpGet] - public async Task ListStores() + public async Task ListStores( + string sortOrder = null, + string sortOrderColumn = null + ) { StoresViewModel result = new StoresViewModel(); var stores = await _Repo.GetStoresByUserId(GetUserId()); + if (sortOrder != null && sortOrderColumn != null) + { + stores = stores.OrderByDescending(store => + { + switch (sortOrderColumn) + { + case nameof(store.StoreName): + return store.StoreName; + case nameof(store.StoreWebsite): + return store.StoreWebsite; + default: + return store.Id; + } + }).ToArray(); + + switch (sortOrder) + { + case "desc": + ViewData[$"{sortOrderColumn}SortOrder"] = "asc"; + break; + case "asc": + stores = stores.Reverse().ToArray(); + ViewData[$"{sortOrderColumn}SortOrder"] = "desc"; + break; + } + } + for (int i = 0; i < stores.Length; i++) { var store = stores[i]; diff --git a/BTCPayServer/Views/Apps/ListApps.cshtml b/BTCPayServer/Views/Apps/ListApps.cshtml index 4d296f6e6..8dd40f7ac 100644 --- a/BTCPayServer/Views/Apps/ListApps.cshtml +++ b/BTCPayServer/Views/Apps/ListApps.cshtml @@ -1,8 +1,13 @@ -@using BTCPayServer.Services.Apps -@model ListAppsViewModel +@model ListAppsViewModel @{ ViewData["Title"] = "Apps"; + var storeNameSortOrder = (string)ViewData["StoreNameSortOrder"]; + var appNameSortOrder = (string)ViewData["AppNameSortOrder"]; + var appTypeSortOrder = (string)ViewData["AppTypeSortOrder"]; + var sortByDesc = "Sort by descending..."; + var sortByAsc = "Sort by ascending..."; } +
@if (TempData.HasStatusMessage()) @@ -34,43 +39,37 @@ - Store @if (ViewData["StoreNameSortOrder"] != null) - { - - } + Store + - Name @if (ViewData["AppNameSortOrder"] != null) - { - - } + Name + - App Type @if (ViewData["AppTypeSortOrder"] != null) - { - - } + App Type + Actions diff --git a/BTCPayServer/Views/UserStores/ListStores.cshtml b/BTCPayServer/Views/UserStores/ListStores.cshtml index 15b1c40c4..c2b39aa7d 100644 --- a/BTCPayServer/Views/UserStores/ListStores.cshtml +++ b/BTCPayServer/Views/UserStores/ListStores.cshtml @@ -1,6 +1,10 @@ @model StoresViewModel @{ ViewData["Title"] = "Stores"; + var storeNameSortOrder = (string)ViewData["StoreNameSortOrder"]; + var storeWebsiteSortOrder = (string)ViewData["StoreWebsiteSortOrder"]; + var sortByDesc = "Sort by descending..."; + var sortByAsc = "Sort by ascending..."; }
@@ -32,8 +36,30 @@ - - + +
NameWebsite + + Name + + + + + Website + + + Actions