@inject ISnackbar Snackbar @Title
Cancel Rename
@code { [CascadingParameter] private IMudDialogInstance Dialog { get; set; } = null!; [Parameter] public ScriptWorkspace Workspace { get; set; } = null!; private bool IsFolder; private string Label = ""; private string Title => IsFolder ? "Rename folder" : "Rename file"; private string NameErrorText = ""; private bool NameError = false; private string FileName = ""; private string OldName = ""; private bool RenameDisabled => FileName == OldName; private Adornment AdornmentVisible => IsFolder ? Adornment.None : Adornment.End; protected override void OnInitialized() { base.OnInitialized(); if (Workspace.SelectedFile is not null) { IsFolder = false; Label = Workspace.SelectedFile.Parrent?.Name ?? "/"; FileName = Workspace.SelectedFile.Name; if (FileName.EndsWith(".cs")) { FileName = FileName.Substring(0, FileName.Length - 3); } OldName = FileName; } else if (Workspace.SelectedFolder is not null) { IsFolder = true; Label = Workspace.SelectedFolder.Parrent?.Name ?? "/"; FileName = Workspace.SelectedFolder.Name; OldName = FileName; } } private void ValidateName() { NameErrorText = string.IsNullOrEmpty(FileName) ? "Tên không được để trống" : ""; NameError = !string.IsNullOrEmpty(NameErrorText); } private void OnCancel() => Dialog.Cancel(); private async Task OnRename() { ValidateName(); if (NameError) { Snackbar.Add("Tên chưa đúng!", Severity.Error); } else { if (Workspace.SelectedFile is not null) { var result = await Workspace.Rename(Workspace.SelectedFile, FileName.EndsWith(".cs") ? FileName : FileName + ".cs"); if (result.IsSuccess) { Dialog.Close(); } else { Snackbar.Add(result.Message, Severity.Error); } } else if (Workspace.SelectedFolder is not null) { var result = await Workspace.Rename(Workspace.SelectedFolder, FileName); if (result.IsSuccess) { Dialog.Close(); } else { Snackbar.Add(result.Message, Severity.Error); } } } } }