File filters

This commit is contained in:
Matthew Parker [SSW]
2024-01-21 14:21:56 +10:00
parent b704258b78
commit 933d11142e
2 changed files with 24 additions and 5 deletions

View File

@@ -6,7 +6,26 @@ namespace DotNetSolutionTools.App.Services;
public class FileService
{
public async Task<IStorageFile?> DoOpenFilePickerAsync()
private readonly FilePickerFileType _csprojFileType = new("C# Project File")
{
Patterns = new[] { "*.csproj" }
};
private readonly FilePickerFileType _slnFileType = new("C# Solution File")
{
Patterns = new[] { "*.sln" }
};
public async Task<IStorageFile?> DoOpenFilePickerCsprojAsync()
{
return await DoOpenFilePickerAsync(_csprojFileType);
}
public async Task<IStorageFile?> DoOpenFilePickerSlnAsync()
{
return await DoOpenFilePickerAsync(_slnFileType);
}
public async Task<IStorageFile?> DoOpenFilePickerAsync(FilePickerFileType fileType)
{
if (
Application.Current?.ApplicationLifetime
@@ -16,7 +35,7 @@ public class FileService
throw new NullReferenceException("Missing StorageProvider instance.");
var files = await provider.OpenFilePickerAsync(
new FilePickerOpenOptions() { Title = "Open Text File", AllowMultiple = false }
new FilePickerOpenOptions() { Title = "Open File", AllowMultiple = false, FileTypeFilter = [fileType] }
);
return files?.Count >= 1 ? files[0] : null;
@@ -32,7 +51,7 @@ public class FileService
throw new NullReferenceException("Missing StorageProvider instance.");
var folder = await provider.OpenFolderPickerAsync(
new FolderPickerOpenOptions() { Title = "Open Text File", AllowMultiple = false }
new FolderPickerOpenOptions() { Title = "Select Folder", AllowMultiple = false }
);
return folder?.Count >= 1 ? folder[0] : null;

View File

@@ -243,7 +243,7 @@ public partial class MainWindowViewModel : ViewModelBase
{
try
{
var file = await _fileService.DoOpenFilePickerAsync();
var file = await _fileService.DoOpenFilePickerSlnAsync();
if (file is null)
return;
@@ -295,7 +295,7 @@ public partial class MainWindowViewModel : ViewModelBase
{
try
{
var folder = await _fileService.DoOpenFilePickerAsync();
var folder = await _fileService.DoOpenFilePickerCsprojAsync();
if (folder is null)
return;