From 17106ea5c72511f5871178c7f1def629c20191ac Mon Sep 17 00:00:00 2001 From: ebr11 Eric Reed spam Date: Mon, 17 Sep 2012 11:12:43 -0400 Subject: Initial commit changing to on-demand child loading and validations --- .../Library/ItemResolveEventArgs.cs | 43 +++++++++++++--------- 1 file changed, 26 insertions(+), 17 deletions(-) (limited to 'MediaBrowser.Controller/Library/ItemResolveEventArgs.cs') diff --git a/MediaBrowser.Controller/Library/ItemResolveEventArgs.cs b/MediaBrowser.Controller/Library/ItemResolveEventArgs.cs index 5d207de13..4194517be 100644 --- a/MediaBrowser.Controller/Library/ItemResolveEventArgs.cs +++ b/MediaBrowser.Controller/Library/ItemResolveEventArgs.cs @@ -1,5 +1,7 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.IO; +using System.Collections.Generic; +using System.Linq; using System; using System.IO; @@ -12,32 +14,39 @@ namespace MediaBrowser.Controller.Library { public WIN32_FIND_DATA[] FileSystemChildren { get; set; } - public WIN32_FIND_DATA? GetFileSystemEntry(string path) + protected List _additionalLocations = new List(); + public List AdditionalLocations { - for (int i = 0; i < FileSystemChildren.Length; i++) + get { - WIN32_FIND_DATA entry = FileSystemChildren[i]; - - if (entry.Path.Equals(path, StringComparison.OrdinalIgnoreCase)) - { - return entry; - } + return _additionalLocations; + } + set + { + _additionalLocations = value; } - - return null; } - public bool ContainsFile(string name) + public IEnumerable PhysicalLocations { - for (int i = 0; i < FileSystemChildren.Length; i++) + get { - if (FileSystemChildren[i].cFileName.Equals(name, StringComparison.OrdinalIgnoreCase)) - { - return true; - } + return (new List() {this.Path}).Concat(AdditionalLocations); } + } - return false; + public bool IsBDFolder { get; set; } + public bool IsDVDFolder { get; set; } + + public WIN32_FIND_DATA? GetFileSystemEntry(string path) + { + WIN32_FIND_DATA entry = FileSystemChildren.FirstOrDefault(f => f.Path.Equals(path, StringComparison.OrdinalIgnoreCase)); + return entry.cFileName != null ? (WIN32_FIND_DATA?)entry : null; + } + + public bool ContainsFile(string name) + { + return FileSystemChildren.FirstOrDefault(f => f.cFileName.Equals(name, StringComparison.OrdinalIgnoreCase)).cFileName != null; } public bool ContainsFolder(string name) -- cgit v1.2.3