Ejemplo n.º 1
0
        public void Shuffle()
        {
            DirectoryListEntryCollection randomizedCollection = GetRandom(this.Count);

            this.Clear();
            Add(randomizedCollection);
        }
Ejemplo n.º 2
0
        public void Sort(string sortByColumn, ListSortDirection sortDirection)
        {
            DirectoryListEntryCollection sortedCollection = GetSorted(this, sortByColumn, sortDirection);

            this.Clear();
            Add(sortedCollection);
        }
Ejemplo n.º 3
0
        public void Sort(List <KeyValuePair <string, ListSortDirection> > sortBy)
        {
            DirectoryListEntryCollection sortedCollection = GetSorted(this, sortBy);

            this.Clear();
            Add(sortedCollection);
        }
Ejemplo n.º 4
0
        /*
         * 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);
        }
Ejemplo n.º 5
0
 public void Remove(DirectoryListEntryCollection collection)
 {
     foreach (DirectoryListEntry entity in collection)
     {
         if (Contains(entity))
         {
             Remove(entity);
         }
     }
 }
Ejemplo n.º 6
0
        public DirectoryListEntryCollection Clone()
        {
            DirectoryListEntryCollection result = new DirectoryListEntryCollection();

            //ArrayList innerList = (ArrayList)this.InnerList.Clone();
            foreach (DirectoryListEntry entity in this)
            {
                result.Add(entity.Clone());
            }
            return(result);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        public static DirectoryListEntryCollection GetAudioCollection(DirectoryListEntryCollection collection)
        {
            DirectoryListEntryCollection result = new DirectoryListEntryCollection();

            {
                foreach (DirectoryListEntry entry in collection)
                {
                    if (entry.IsAudio)
                    {
                        result.Add(entry);
                    }
                }
            }
            return(result);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        /*
         * 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);
        }
Ejemplo n.º 11
0
        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;
            }
        }
Ejemplo n.º 12
0
        /*
         * 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);
        }
Ejemplo n.º 13
0
        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());
        }
Ejemplo n.º 14
0
        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);
            }
        }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 16
0
        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());
        }
Ejemplo n.º 17
0
        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);
        }
Ejemplo n.º 18
0
 public void Add(DirectoryListEntryCollection collection)
 {
     this.AddRange(collection);
 }
Ejemplo n.º 19
0
 public static DirectoryListEntryCollection GetSorted(DirectoryListEntryCollection collection, DirectoryListEntryColumnName sortByColumn, ListSortDirection sortDirection)
 {
     return(GetSorted(collection, sortByColumn.ToString(), sortDirection));
 }