public void Shuffle() { DirectoryListEntryCollection randomizedCollection = GetRandom(this.Count); this.Clear(); Add(randomizedCollection); }
public void Sort(string sortByColumn, ListSortDirection sortDirection) { DirectoryListEntryCollection sortedCollection = GetSorted(this, sortByColumn, sortDirection); this.Clear(); Add(sortedCollection); }
public void Sort(List <KeyValuePair <string, ListSortDirection> > sortBy) { DirectoryListEntryCollection sortedCollection = GetSorted(this, sortBy); this.Clear(); Add(sortedCollection); }
/* * 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 void Remove(DirectoryListEntryCollection collection) { foreach (DirectoryListEntry entity in collection) { if (Contains(entity)) { Remove(entity); } } }
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 GetSorted(DirectoryListEntryCollection collection, List <KeyValuePair <string, ListSortDirection> > sortBy) { // necessary! collection = collection.Clone(); for (int index = sortBy.Count - 1; index > -1; index--) { string columnName = sortBy[index].Key; ListSortDirection direction = sortBy[index].Value; collection.Sort(columnName, direction); } return(collection); }
public static DirectoryListEntryCollection GetAudioCollection(DirectoryListEntryCollection collection) { DirectoryListEntryCollection result = new DirectoryListEntryCollection(); { foreach (DirectoryListEntry entry in collection) { if (entry.IsAudio) { result.Add(entry); } } } return(result); }
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 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 void AddInterlaced(DirectoryListEntryCollection collection) { int index = 1; foreach (DirectoryListEntry entity in collection) { if (this.Count > index) { this.Insert(index, entity); } else { this.Add(entity); } index = index + 2; } }
/* * 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 string GetImagePlaylist(DirectoryListEntryCollection collection, DirectoryListEntry firstEntry, string directoryAbsoluteUrl) { StringBuilder builder = new StringBuilder(); collection = GetImageCollection(collection); int startIndex = collection.IndexOf(firstEntry); for (int index = startIndex; index < collection.Count; index++) { DirectoryListEntry entry = collection[index]; AppendImageEntry(builder, entry, directoryAbsoluteUrl); } for (int index = 0; index < startIndex; index++) { DirectoryListEntry entry = collection[index]; AppendImageEntry(builder, entry, directoryAbsoluteUrl); } return(builder.ToString()); }
public PlaylistPage() { string directoryRelativeUrl = Conversion.ToString(HttpContext.Current.Request.Params["DirectoryRelativeUrl"]); string fileName = Conversion.ToString(HttpContext.Current.Request.Params["FileName"]); string extension = Conversion.ToString(HttpContext.Current.Request.Params["Extension"]); DirectoryListEntryCollection collection = DirectoryListUtils.GetDirectoryList(IISUtils.MapPath(directoryRelativeUrl)); DirectoryListEntry firstEntry = new DirectoryListEntry(); firstEntry.Name = fileName; firstEntry.Extension = extension; string directoryAbsoluteUrl = UrlUtils.HostUrl + directoryRelativeUrl; if (ExtensionUtils.IsImage(extension)) { m_playlist = DirectoryListUtils.GetImagePlaylist(collection, firstEntry, directoryAbsoluteUrl); } else { m_playlist = DirectoryListUtils.GetAudioPlaylist(collection, firstEntry, directoryAbsoluteUrl); } }
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); }
private void BindList() { string listEntryHtml = GetTemplate("Browse\\DirectoryListEntry.htm"); StringBuilder builder = new StringBuilder(); DirectoryListEntryCollection collection = this.DirectoryList; DirectoryListEntryCollection page = this.DirectoryListPage; int pageCount = PagingUtils.CalculatePageCount(this.DirectoryList.Count, m_pageSize); int index = 1; foreach (DirectoryListEntry entry in page) { string entryHtml = listEntryHtml; entryHtml = entryHtml.Replace("[Name]", entry.Name); entryHtml = entryHtml.Replace("[NavigateUrl]", entry.NavigateUrl); int displayOrder = (this.PageIndex - 1) * 10 + index; entryHtml = entryHtml.Replace("[DisplayOrder]", displayOrder.ToString()); entryHtml = entryHtml.Replace("[NextDisplayOrder]", (displayOrder + 1).ToString()); entryHtml = entryHtml.Replace("[IconName]", entry.IconName); if (m_pageIndex > 1 && index == 1) { entry.BrowserTags = entry.BrowserTags + " onkeyupset=\"prev\""; } if (m_pageIndex < pageCount && index == m_pageSize) { entry.BrowserTags = entry.BrowserTags + " onkeydownset=\"next\""; } entryHtml = entryHtml.Replace("[BrowserTags]", entry.BrowserTags); builder.Append(entryHtml); index++; } this.MainContentHtml = this.MainContentHtml.Replace("<List>", builder.ToString()); }
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); }
public void Add(DirectoryListEntryCollection collection) { this.AddRange(collection); }
public static DirectoryListEntryCollection GetSorted(DirectoryListEntryCollection collection, DirectoryListEntryColumnName sortByColumn, ListSortDirection sortDirection) { return(GetSorted(collection, sortByColumn.ToString(), sortDirection)); }