Esempio n. 1
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);
        }
Esempio n. 2
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);
        }
Esempio n. 3
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);
        }
Esempio n. 4
0
        public static DirectoryListEntryCollection GetAudioCollection(DirectoryListEntryCollection collection)
        {
            DirectoryListEntryCollection result = new DirectoryListEntryCollection();

            {
                foreach (DirectoryListEntry entry in collection)
                {
                    if (entry.IsAudio)
                    {
                        result.Add(entry);
                    }
                }
            }
            return(result);
        }
Esempio n. 5
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);
        }
Esempio n. 6
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);
        }
Esempio n. 7
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);
        }
Esempio n. 8
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);
        }