123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- using FNZCM.Shared.MediaModels;
- namespace FNZCM.BlazorWasm
- {
- internal static class FnzDataSet
- {
- public static Dictionary<string, Library> Libraries { get; set; }
- public static Dictionary<string, MediaTag> MediaTags { get; set; }
- public static int GetDuration(string lib, string disc = null, string subSet = null)
- {
- if (disc == null && subSet == null)
- {
- return Libraries[lib].Discs.Sum(d
- => d.Value.MainTracks.Sum(t
- => MediaTags.TryGetValue($"/media/{lib}/{d.Key}/{t.Key}", out var tag)
- ? tag.Duration
- : 0)
- );
- }
- if (disc == null)
- {
- return Libraries[lib].Discs.Sum(d
- => d.Value.SubTracks.ContainsKey(subSet)
- ? d.Value.SubTracks[subSet].Tracks.Sum(t
- => MediaTags.TryGetValue($"/media/{lib}/{d.Key}/{subSet}/{t.Key}", out var tag)
- ? tag.Duration
- : 0)
- : 0
- );
- }
- if (subSet == null)
- {
- return Libraries[lib].Discs[disc].MainTracks
- .Sum(t => MediaTags.TryGetValue($"/media/{lib}/{disc}/{t.Key}", out var tag)
- ? tag.Duration
- : 0
- );
- }
- return
- Libraries[lib].Discs[disc].SubTracks.ContainsKey(subSet)
- ? Libraries[lib].Discs[disc].SubTracks[subSet].Tracks
- .Sum(t => MediaTags.TryGetValue($"/media/{lib}/{disc}/{subSet}/{t.Key}", out var tag)
- ? tag.Duration
- : 0
- )
- : 0;
- }
- public static long GetFileSize(string lib, string disc = null, string subSet = null)
- {
- if (disc == null && subSet == null)
- {
- return Libraries[lib].Discs.Sum(d
- => d.Value.MainTracks.Sum(t
- => MediaTags.TryGetValue($"/media/{lib}/{d.Key}/{t.Key}", out var tag)
- ? tag.Length
- : 0)
-
- );
- }
- if (disc == null)
- {
- return Libraries[lib].Discs.Sum(d
- => d.Value.SubTracks.ContainsKey(subSet)
- ? d.Value.SubTracks[subSet].Tracks.Sum(t
- => MediaTags.TryGetValue($"/media/{lib}/{d.Key}/{subSet}/{t.Key}", out var tag)
- ? tag.Length
- : 0)
- : 0
- );
- }
- if (subSet == null)
- {
- return Libraries[lib].Discs[disc].MainTracks
- .Sum(t => MediaTags.TryGetValue($"/media/{lib}/{disc}/{t.Key}", out var tag)
- ? tag.Length
- : 0
- );
- }
- return Libraries[lib].Discs[disc].SubTracks.ContainsKey(subSet)
- ? Libraries[lib].Discs[disc].SubTracks[subSet].Tracks
- .Sum(t => MediaTags.TryGetValue($"/media/{lib}/{disc}/{subSet}/{t.Key}", out var tag)
- ? tag.Length
- : 0
- )
- : 0;
- }
- public static MediaTag? GetMediaTag(string lib, string disc, string track, string subSet = null)
- {
- if (subSet == null)
- return true == MediaTags?.TryGetValue($"/media/{lib}/{disc}/{track}", out var tagD)
- ? tagD : null;
- return true == MediaTags?.TryGetValue($"/media/{lib}/{disc}/{subSet}/{track}", out var tagS)
- ? tagS : null;
- }
- }
- }
|