@using RobotNet.WebApp.Scripts.Components.Dialogs
@inject IDialogService DialogService
@inject ISnackbar Snackbar
@code {
[CascadingParameter]
private ScriptWorkspace Workspace { get; set; } = null!;
private async Task OpenDialogCreateNewFile()
{
var parentPath = Workspace.SelectedFolder?.Path ?? "";
var parameters = new DialogParameters()
{
{x => x.FolderName, parentPath},
};
var dialog = await DialogService.ShowAsync("Create new file", parameters);
var resultDialog = await dialog.Result;
if (resultDialog is null || resultDialog.Canceled || resultDialog.Data is not string fileName) return;
fileName = fileName.EndsWith(".cs") ? fileName : fileName + ".cs";
var result = await Workspace.CreateNewFile(fileName);
if (!result.IsSuccess)
{
Snackbar.Add(result.Message, Severity.Error);
}
}
private async Task OpenDialogCreateNewFolder()
{
var parentPath = Workspace.SelectedFolder?.Path ?? "";
var parameters = new DialogParameters()
{
{x => x.FolderName, parentPath},
{x => x.IsFolder, true },
};
var dialog = await DialogService.ShowAsync("Create new folder", parameters);
var resultDialog = await dialog.Result;
if (resultDialog is null || resultDialog.Canceled || resultDialog.Data is not string folderName) return;
var result = await Workspace.CreateNewFolder(folderName);
if (!result.IsSuccess)
{
Snackbar.Add(result.Message, Severity.Error);
}
}
private async Task SaveAllFiles()
{
var results = await Workspace.SaveAllAsync();
foreach(var result in results)
{
if (!result.IsSuccess)
{
Snackbar.Add(result.Message, Severity.Error);
}
}
}
}