예제 #1
0
        public Task <string> GetFileNameFromUserForOpen()
        {
            var fileSpecifications = FileHandlers.Where(fr => fr.Metadata.CanRead).Select(fr => new FileSpecification(fr.Metadata.DisplayName, fr.Metadata.FileExtensions));
            var filter             = string.Join("|",
                                                 from r in fileSpecifications.OrderBy(f => f.DisplayName)
                                                 let exts = string.Join(";", r.FileExtensions.Select(x => "*" + x))
                                                            select string.Format("{0}|{1}", r.DisplayName, exts));

            var all = string.Format("{0}|{1}",
                                    "All supported types",
                                    string.Join(";", fileSpecifications.SelectMany(f => f.FileExtensions).Select(x => "*" + x).OrderBy(x => x)));

            filter = string.Join("|", all, filter);

            var dialog = new OpenFileDialog();

            dialog.DefaultExt = fileSpecifications.First().FileExtensions.First();
            dialog.Filter     = filter;
            var result = dialog.ShowDialog();

            if (result != true)
            {
                return(Task.FromResult <string>(null));
            }
            return(Task.FromResult(dialog.FileName));
        }
예제 #2
0
        public Task <string> GetFileNameFromUserForSave()
        {
            var x = FileHandlers.Where(fw => fw.Metadata.CanWrite).Select(fw => new FileSpecification(fw.Metadata.DisplayName, fw.Metadata.FileExtensions));

            return(GetFileNameFromUserForWrite(x));
        }