From f3c42457f6d28faf3f51f5b9417f027fd116af3d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vojt=C4=9Bch=20Barti=C4=8Dka?= <aitakaitov@gmail.com>
Date: Wed, 27 Apr 2022 10:11:55 +0200
Subject: [PATCH] Ordering of tags in GetTagTree

---
 .../Core/Services/TagService/TagServiceEF.cs  | 26 +++++++++++++++----
 1 file changed, 21 insertions(+), 5 deletions(-)

diff --git a/Backend/Core/Services/TagService/TagServiceEF.cs b/Backend/Core/Services/TagService/TagServiceEF.cs
index a537be9..43a9d4e 100644
--- a/Backend/Core/Services/TagService/TagServiceEF.cs
+++ b/Backend/Core/Services/TagService/TagServiceEF.cs
@@ -26,21 +26,37 @@ namespace Core.Services.TagService
         public TagTreeResponse GetTagTree()
         {
             // Prefetch from DB
-            var tagCategories = databaseContext.TagCategories.Select(tc => tc).ToList();
-            var tags = databaseContext.Tags.Select(tc => tc).ToList();
-            var subTags = databaseContext.SubTags.Select(tc => tc).ToList();
+            var tagCategories = databaseContext.TagCategories
+                .Select(tc => tc)
+                .OrderBy(tc => tc.Name)
+                .ToList();
+
+            var tags = databaseContext.Tags
+                .Select(tc => tc)
+                .ToList();
+
+            var subTags = databaseContext.SubTags
+                .Select(tc => tc)
+                .ToList();
 
             var tagCategoriesDTOs = new List<TagCategoryInfo>();
             foreach (var tagCategory in tagCategories)
             {
                 var tagCategoryDTO = mapper.Map<TagCategoryInfo>(tagCategory);
-                var categoryTags = tags.Where(t => t.Category == tagCategory);
+                var categoryTags = tags
+                    .Where(t => t.Category == tagCategory)
+                    .OrderBy(t => t.Name);
+
                 var tagDTOs = new List<TagInfo>();
 
                 foreach (var tag in categoryTags)
                 {
                     var tagDTO = mapper.Map<TagInfo>(tag);
-                    var tagSubTags = subTags.Where(st => st.Tag == tag).ToList();
+                    var tagSubTags = subTags
+                        .Where(st => st.Tag == tag)
+                        .OrderBy(st => st.Name)
+                        .ToList();
+
                     var subTagDTOs = new List<SubTagInfo>();
 
                     if (tagSubTags.Count() != 0)
-- 
GitLab