Пример #1
0
        public void TestRegularExpressionAny()
        {
            IFileFilter fileFilter = FileFilterHelper.ParseFileFilter("Test", "*.*");
            string      filename   = "Test.cs";

            Assert.AreEqual(true, fileFilter.IsMatch(filename));
        }
Пример #2
0
        public void TestParseFileFilter()
        {
            IFileFilter fileFilter = FileFilterHelper.ParseFileFilter("Test", "*.cs");

            Assert.AreEqual("Test", fileFilter.Label);
            Assert.AreEqual("*.cs", fileFilter.Filters);
        }
Пример #3
0
        /// <summary>
        /// Creates a new, immutable <see cref="FileFilter" />.
        /// <param name="label">The label of the filter</param>
        /// <param name="filters">The filter portion string like: *.cs;*.xaml</param>
        /// </summary>
        public static FileFilter Create(string label, string filters)
        {
            CheckArguments(label, filters);

            IEnumerable <string> regularExpressions = FileFilterHelper.ParseFilterRegularExpressions(filters);

            return(Create(label, filters, regularExpressions));
        }
Пример #4
0
        public void TestConvertFileFilterToString()
        {
            IFileFilter fileFilter = FileFilter.Create("Test", "*.cs");
            string      filterStr1 = FileFilterHelper.ConvertFileFilterToString(fileFilter);
            string      filterStr2 = filterStr1.ToString();

            Assert.AreEqual("Test|*.cs", filterStr1);
            Assert.AreEqual("Test|*.cs", filterStr2);
        }
Пример #5
0
        public void TestParseFileFilters()
        {
            IList <IFileFilter> fileFilters = FileFilterHelper.ParseFileFilters("Test|*.cs|Web|*.html;*.js");

            Assert.AreEqual("Test", fileFilters[0].Label);
            Assert.AreEqual("*.cs", fileFilters[0].Filters);

            Assert.AreEqual("Web", fileFilters[1].Label);
            Assert.AreEqual("*.html;*.js", fileFilters[1].Filters);
        }
Пример #6
0
        public void TestConvertFileFiltersToString()
        {
            IList <IFileFilter> fileFilters = new List <IFileFilter>()
            {
                FileFilter.Create("Test", "*.cs"),
                FileFilter.Create("Web", "*.html;*.js")
            };

            string filtersStr = FileFilterHelper.ConvertFileFiltersToString(fileFilters);

            Assert.AreEqual("Test|*.cs|Web|*.html;*.js", filtersStr);
        }
        public void TestBuildFullFileNameForInCurrentDirectoryWithoutForcedFileExtension()
        {
            FileSystemController fileSystemController = new FileSystemController()
            {
                ForceFileExtensionOfFileFilter = false,
                FileFilterToApply = FileFilterHelper.ParseFileFilter("Test", "*.cs;*.xaml")
            };

            fileSystemController.SelectDirectory(m_directory);

            string filename = fileSystemController.BuildFullFileNameForInCurrentDirectory("test.txt");

            Assert.AreEqual($@"{m_directory}\test.txt", filename);
        }
Пример #8
0
        public void TestGetFileExtensionsFromFilter()
        {
            IFileFilter          fileFilter     = FileFilterHelper.ParseFileFilter("Test", "*.cs;file.*;cs*.*;*.xaml;test;*.txt.bak");
            IEnumerable <string> fileExtensions = FileFilterHelper.GetFileExtensionsFromFilter(fileFilter);

            Assert.IsNotNull(fileExtensions);
            Assert.AreEqual(3, fileExtensions.Count());
            Assert.IsTrue(fileExtensions.Any(fileExtension => fileExtension == "cs"));
            Assert.IsTrue(fileExtensions.Any(fileExtension => fileExtension == "xaml"));
            Assert.IsTrue(fileExtensions.Any(fileExtension => fileExtension == "bak"));

            fileExtensions = FileFilterHelper.GetFileExtensionsFromFilter(null);

            Assert.IsTrue(fileExtensions == null || !fileExtensions.Any());
        }
Пример #9
0
        private void OpenFile(object o)
        {
            var mediaPlugin = (IPlugin <IMedia>)o;

            if (_state.MediaPlugin == null || _state.MediaPlugin.Content == null)
            {
                return;
            }
            var openFileDialog = new OpenFileDialog();

            openFileDialog.Filter = FileFilterHelper.GetFilter();
            if (openFileDialog.ShowDialog().Value)
            {
                _state.MediaPlugin = mediaPlugin;
                _state.MediaPlugin.Content.OpenFileCommand.Execute(openFileDialog.FileName);
                LoadSideCarPreset(openFileDialog.FileName);
            }
        }
Пример #10
0
 public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
 {
     try
     {
         var path = value.ToString();
         if (!Path.IsPathRooted(path))
         {
             path = Path.Combine(Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName), path);
         }
         var dir    = new DirectoryInfo(path);
         var filter = FileFilterHelper.GetFilter();
         return(dir.GetFiles().Where(info => filter.Contains(info.Extension)));
     }
     catch (Exception exc)
     {
         Logger.Instance.Error("Error while converting path to FileInfos.", exc);
         return(null);
     }
 }
Пример #11
0
        public void TestRegularExpression()
        {
            IFileFilter fileFilter = FileFilterHelper.ParseFileFilter("Test", "*.cs;*.xaml;file.*;cs*.*");
            string      filename1  = "Test.cs";
            string      filename2  = "Test.xaml";
            string      filename3  = "Test.html";
            string      filename4  = "Test.css";
            string      filename5  = "file.html";
            string      filename6  = "csfile1_2.js";
            string      filename7  = "cs.js";

            Assert.AreEqual(true, fileFilter.IsMatch(filename1));
            Assert.AreEqual(true, fileFilter.IsMatch(filename2));
            Assert.AreEqual(false, fileFilter.IsMatch(filename3));
            Assert.AreEqual(false, fileFilter.IsMatch(filename4));
            Assert.AreEqual(true, fileFilter.IsMatch(filename5));
            Assert.AreEqual(true, fileFilter.IsMatch(filename6));
            Assert.AreEqual(true, fileFilter.IsMatch(filename7));
        }
Пример #12
0
        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
        {
            if (value == null)
            {
                return(null);
            }

            if (value is IList <IFileFilter> filters)
            {
                return(FileFilterHelper.ConvertFileFiltersToString(filters));
            }
            else if (value is string filterStr)
            {
                return(filterStr);
            }
            else
            {
                return(base.ConvertTo(context, culture, value, destinationType));
            }
        }
Пример #13
0
        public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
        {
            if (value == null)
            {
                return(null);
            }

            if (value is string filterStr)
            {
                return(FileFilterHelper.ParseFileFilters(filterStr));
            }
            else if (value is IList <IFileFilter> filters)
            {
                return(filters);
            }
            else
            {
                return(base.ConvertFrom(context, culture, value));
            }
        }
Пример #14
0
 public override string ToString()
 {
     return(FileFilterHelper.ConvertFileFilterToString(this));
 }