Browse Source

Loading: Parallel FileSet and Tags;
Playlist: Fix sum and layout change;

HOME 2 years ago
parent
commit
acb009f4f6

+ 8 - 2
FNZCM/FNZCM.BlazorWasm/Helpers/FnzDataSetHelper.cs

@@ -3,6 +3,7 @@ using FNZCM.BlazorWasm.UI.Components;
 using FNZCM.BlazorWasm.Utility;
 using FNZCM.Shared.Helpers;
 using FNZCM.Shared.MediaModels;
+using Newtonsoft.Json;
 
 namespace FNZCM.BlazorWasm.Helpers
 {
@@ -19,8 +20,13 @@ namespace FNZCM.BlazorWasm.Helpers
 
         public async Task InitFeModulesAsync(ProgressBar[] progress)
         {
-            var libraries = await api.GetLibrariesAsync(progress);
-            var mediaTags = await api.GetMediaTagsAsync(progress);
+            var librariesT = api.GetLibrariesAsync(progress);
+            var mediaTagsT = api.GetMediaTagsAsync(progress);
+
+            await Task.WhenAll(librariesT, mediaTagsT);
+
+            var libraries = librariesT.Result;
+            var mediaTags = mediaTagsT.Result;
 
             var apiBase = api.BaseAddress.ToString();
 

+ 4 - 1
FNZCM/FNZCM.BlazorWasm/UI/Components/PlaylistAddDialog.razor

@@ -40,7 +40,10 @@
                                 </button>
                             </td>
                             <td class="text-left w-100 align-middle">@item.Value</td>
-                            <td class="align-middle">(@arr.Count)</td>
+                            <td class="align-middle text-center">
+                                (@arr.Count)
+                                <div class="text-nowrap text-muted">@arr.Sum(p=>DataSet.AllTracks?.Where(q=>q?.Path==p).Select(q=>q?.Tag?.Duration??0).FirstOrDefault()).SecondToDur()</div>
+                            </td>
                             <td class="align-middle text-nowrap">
                                 @if (existX == 1)
                                 {

+ 10 - 14
FNZCM/FNZCM.BlazorWasm/UI/Views/Default/Playlist/PlaylistTableItem.razor

@@ -25,12 +25,13 @@
                 }
             </button>
         </td>
-        <td class="text-left w-100 align-middle" @onclick="()=>{IsExpand=!IsExpand;}" colspan="2">
-            @Playlist.Value.Value
-        </td>
-        <td class=" align-middle">
-            <div class="text-nowrap">@DataSet.AllTracks.Where(p=>arr.Contains(p.Path)).Sum(p=>p.Tag?.Duration??0).SecondToDur()</div>
-            <div class="text-nowrap text-muted">@DataSet.AllTracks.Where(p=>arr.Contains(p.Path)).Sum(p=>p.Tag?.Length??0).BytesToFileSize()</div>
+        <td class="text-left w-100 align-middle" @onclick="()=>{IsExpand=!IsExpand;}" colspan="1">
+            <div class="text-nowrap">@Playlist.Value.Value</div>
+            <div class="text-nowrap text-muted">
+                (@arr.Count)
+                @arr.Sum(p=>DataSet.AllTracks.Where(q=>q.Path==p).Select(q=>q.Tag?.Duration??0).FirstOrDefault()).SecondToDur()
+                @arr.Sum(p=>DataSet.AllTracks.Where(q=>q.Path==p).Select(q=>q.Tag?.Length??0).FirstOrDefault()).BytesToFileSize()
+            </div>
         </td>
         <td>
             <button type="button" class="btn btn-primary p-2" @onclick="()=>DownloadPlaylist(Playlist.Value.Key)">
@@ -42,7 +43,6 @@
                 <i class="bi bi-pencil-square"></i>
             </button>
         </td>
-        <td class="align-middle text-center">(@arr.Count)</td>
         <td class="align-middle text-nowrap">
             <button type="button" class="btn btn-primary p-2" @onclick="()=>DeletePlaylist.InvokeAsync(Playlist.Value.Key)">
                 <i class="bi bi-trash"></i>
@@ -60,27 +60,23 @@
                 if (track != null)
                 {
                     <tr>
-                        <td></td>
                         <td><img src="@track.Disc.CoverPath" style="height:50px" /></td>
-                        <td class="align-middle w-100 ">
+                        <td class="align-middle w-100">
                             <div class="text-nowrap">
                                 <FileIcon FileName="@track.Name"></FileIcon>
                                 @((track.Tag?.Title).NullOrEmptyEscape(track.Name))
                             </div>
                             <div class="text-nowrap text-muted"> @track.Tag?.Artist</div>
                         </td>
-                        <td>
+                        <td class="text-center" colspan="2">
                             <div class="text-nowrap">@track.Tag?.Duration.SecondToDur()</div>
                             <div class="text-nowrap text-muted"> @track.Tag?.Length.BytesToFileSize()</div>
                         </td>
-                        <td></td>
                         <td>
                             <button type="button" class="btn btn-primary p-2" @onclick="()=>Remove(Playlist.Value.Key, item.index,item.item)">
-                                <i class="bi bi-trash"></i>
+                                <i class="bi bi-folder-minus"></i>
                             </button>
                         </td>
-                        <td></td>
-                        <td></td>
                     </tr>
                 }
                 else