public static DirectoryListEntryCollection GetDirectoryList(string physicalPath) { string[] directories; string[] files; DirectoryListEntryCollection collection = new DirectoryListEntryCollection(); if (Directory.Exists(physicalPath)) { directories = Directory.GetDirectories(physicalPath); files = Directory.GetFiles(physicalPath); foreach (string directoryPath in directories) { //virtualPath = VirtualPathUtility.Combine(context.Request.Path + "/", Path.GetFileName(str3)); DirectoryListEntry entry = new DirectoryListEntry(); string directoryName = Path.GetFileName(directoryPath); entry.Name = directoryName; entry.IsDirectory = true; collection.Add(entry); } foreach (string filePath in files) { DirectoryListEntry entry = new DirectoryListEntry(); string fileName = Path.GetFileNameWithoutExtension(filePath); entry.Name = fileName; entry.IsDirectory = false; string extension = Path.GetExtension(filePath); if (extension.StartsWith(".")) { extension = extension.Substring(1); } entry.Extension = extension; if (entry.IsPlayable) { collection.Add(entry); } } } collection = FilterCollection(collection); return(collection); }
/* * public static DirectoryListEntryCollection GetUnique(DirectoryListEntryCollection collection) * { * DirectoryListEntryCollection result = new DirectoryListEntryCollection(); * foreach(DirectoryListEntry entity in collection) * { * if(!result.Contains(entity)) * { * result.Add(entity); * } * } * return result; * } */ public static DirectoryListEntryCollection GetReversed(DirectoryListEntryCollection collection) { DirectoryListEntryCollection result = new DirectoryListEntryCollection(); for (int index = collection.Count - 1; index > -1; index--) { result.Add(collection[index]); } return(result); }
public DirectoryListEntryCollection Clone() { DirectoryListEntryCollection result = new DirectoryListEntryCollection(); //ArrayList innerList = (ArrayList)this.InnerList.Clone(); foreach (DirectoryListEntry entity in this) { result.Add(entity.Clone()); } return(result); }
public static DirectoryListEntryCollection GetAudioCollection(DirectoryListEntryCollection collection) { DirectoryListEntryCollection result = new DirectoryListEntryCollection(); { foreach (DirectoryListEntry entry in collection) { if (entry.IsAudio) { result.Add(entry); } } } return(result); }
/* * public bool Contains(Int32 p_DirectoryListEntryID) * { * DirectoryListEntry entity = new DirectoryListEntry(); * entity.DirectoryListEntryID = p_DirectoryListEntryID; * return this.Contains(entity); * } * * public int IndexOf(Int32 p_DirectoryListEntryID) * { * DirectoryListEntry entity = new DirectoryListEntry(); * entity.DirectoryListEntryID = p_DirectoryListEntryID; * return this.IndexOf(entity); * } * * public void Remove(Int32 p_DirectoryListEntryID) * { * DirectoryListEntry entity = new DirectoryListEntry(); * entity.DirectoryListEntryID = p_DirectoryListEntryID; * this.Remove(entity); * } * */ /* #region static methods * public static DirectoryListEntryCollection GetIntersection(DirectoryListEntryCollection coll1, DirectoryListEntryCollection coll2) * { * DirectoryListEntryCollection result = new DirectoryListEntryCollection(); * foreach (DirectoryListEntry entity in coll1) * { * if (coll2.Contains(entity)) * { * result.Add(entity); * } * } * return result; * } */ public static DirectoryListEntryCollection GetRandom(DirectoryListEntryCollection collection, int count) { DirectoryListEntryCollection result = new DirectoryListEntryCollection(); DirectoryListEntryCollection temp = collection.Clone(); if (count == 0 || count > temp.Count) { count = temp.Count; } for (int index = 0; index < count; index++) { int randomIndex = new Random().Next(temp.Count); result.Add(temp[randomIndex]); temp.RemoveAt(randomIndex); } return(result); }
/* * public static DirectoryListEntryCollection GetFiltered(DirectoryListEntryCollection collection, DirectoryListEntryColumnName columnName, object value) * { * return GetFiltered(collection, columnName.ToString(), value); * } * * public static DirectoryListEntryCollection GetFiltered(DirectoryListEntryCollection collection, string columnName, object value) * { * DirectoryListEntryCollection result = new DirectoryListEntryCollection(); * * if (value is bool) * { * value = Convert.ToByte(value); * } * * foreach (DirectoryListEntry entity in collection) * { * if (entity[columnName].Equals(value)) * { * result.Add(entity); * } * } * return result; * } * * public static DirectoryListEntryCollection GetFiltered(DirectoryListEntryCollection collection, DirectoryListEntryColumnName columnName, object value, ComparisonOperator comparisonOperator) * { * return GetFiltered(collection, columnName.ToString(), value, comparisonOperator); * } * * //Approximately 2.5 Times Slower Than Direct Approach (e.g. value >= entity.DisplayOrder), but still very fast and useful. * public static DirectoryListEntryCollection GetFiltered(DirectoryListEntryCollection collection, string columnName, object value, ComparisonOperator comparisonOperator) * { * DirectoryListEntryCollection result = new DirectoryListEntryCollection(); * * if (value is bool) * { * value = Convert.ToByte(value); * } * * foreach (DirectoryListEntry entity in collection) * { * int comparisonResult = entity.CompareField(columnName, value); * if (ComparisonUtils.DoesComparisonMatch(comparisonOperator, comparisonResult)) * { * result.Add(entity); * } * } * return result; * } * * public static DirectoryListEntryCollection GetBlocked(DirectoryListEntryCollection collection, DirectoryListEntryColumnName columnName, object value) * { * return GetBlocked(collection, columnName.ToString(), value); * } * * public static DirectoryListEntryCollection GetBlocked(DirectoryListEntryCollection collection, string columnName, object value) * { * DirectoryListEntryCollection result = new DirectoryListEntryCollection(); * * if (value is bool) * { * value = Convert.ToByte(value); * } * * foreach (DirectoryListEntry entity in collection) * { * if (!entity[columnName].Equals(value)) * { * result.Add(entity); * } * } * return result; * } * * public static int GetCount(DirectoryListEntryCollection collection, DirectoryListEntryColumnName columnName, object value) * { * int result = 0; * * if (value is bool) * { * value = Convert.ToByte(value); * } * * foreach (DirectoryListEntry entity in collection) * { * if (entity[columnName.ToString()].Equals(value)) * { * result++; * } * } * return result; * } */ public static DirectoryListEntryCollection GetPage(DirectoryListEntryCollection collection, int pageIndex, int pageSize) { DirectoryListEntryCollection page = new DirectoryListEntryCollection(); int firstItemIndex = PagingUtils.GetFirstItemIndex(pageIndex, pageSize); int lastItemIndex = PagingUtils.GetLastItemIndex(pageIndex, pageSize); if (lastItemIndex >= collection.Count) { lastItemIndex = collection.Count - 1; } for (int index = firstItemIndex; index < lastItemIndex + 1; index++) { page.Add((DirectoryListEntry)collection[index]); } return(page); }
public static DirectoryListEntryCollection GetSorted(DirectoryListEntryCollection collection, string sortByColumn, ListSortDirection sortDirection) { bool isReversed = (sortDirection == ListSortDirection.Descending); IComparer comparer = new KeyValueCaseInsensitiveComparer(isReversed); SortedList sortedList = new SortedList(comparer); int counter = 0; foreach (DirectoryListEntry entity in collection) { KeyValue key = new KeyValue(counter.ToString(), entity[sortByColumn]); sortedList.Add(key, entity); counter++; } DirectoryListEntryCollection result = new DirectoryListEntryCollection(); foreach (DirectoryListEntry entity in sortedList.Values) { result.Add(entity); } return(result); }
public static DirectoryListEntryCollection FilterCollection(DirectoryListEntryCollection collection) { DirectoryListEntryCollection result = new DirectoryListEntryCollection(); string excludeOnExactMatch = SettingManager.GetValue("ExcludeOnExactMatch").ToLower(); string[] excludeOnExactMatchList = excludeOnExactMatch.Split(';'); string excludeOnPartialMatch = SettingManager.GetValue("ExcludeOnPartialMatch").ToLower(); string[] excludeOnPartialMatchList = excludeOnPartialMatch.Split(';'); foreach (DirectoryListEntry entry in collection) { bool exclude = false; foreach (string exact in excludeOnExactMatchList) { if (entry.Name.ToLower().Equals(exact)) { exclude = true; break; } } foreach (string partial in excludeOnPartialMatchList) { if (entry.Name.ToLower().Contains(partial) && !partial.Equals(String.Empty)) { exclude = true; break; } } if (!exclude) { result.Add(entry); } } return(result); }