Merge pull request #3649 from thabaum/clean-protocal-save-alias

Cleans protocol to check for duplicate alias prior to saving.  Fixes #3647
This commit is contained in:
Shaun Walker 2024-01-18 07:57:53 -05:00 committed by GitHub
commit 34f32c8ba5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -819,8 +819,17 @@
if (!string.IsNullOrEmpty(_aliasname)) if (!string.IsNullOrEmpty(_aliasname))
{ {
var aliases = await AliasService.GetAliasesAsync(); var aliases = await AliasService.GetAliasesAsync();
var alias = aliases.Where(item => item.Name == _aliasname).FirstOrDefault();
int protocolIndex = _aliasname.IndexOf("://", StringComparison.OrdinalIgnoreCase);
if (protocolIndex != -1)
{
_aliasname = _aliasname.Substring(protocolIndex + 3);
}
var alias = aliases.FirstOrDefault(item => item.Name == _aliasname);
bool unique = (alias == null || alias.AliasId == _aliasid); bool unique = (alias == null || alias.AliasId == _aliasid);
if (unique) if (unique)
{ {
if (_aliasid == 0) if (_aliasid == 0)
@ -830,22 +839,27 @@
} }
else else
{ {
alias = _aliases.Single(item => item.AliasId == _aliasid); alias = _aliases.SingleOrDefault(item => item.AliasId == _aliasid);
if (alias != null)
{
alias.Name = _aliasname; alias.Name = _aliasname;
alias.IsDefault = bool.Parse(_defaultalias); alias.IsDefault = bool.Parse(_defaultalias);
await AliasService.UpdateAliasAsync(alias); await AliasService.UpdateAliasAsync(alias);
} }
} }
else // duplicate alias
{
AddModuleMessage(Localizer["Message.Aliases.Taken"], MessageType.Warning);
}
}
await GetAliases(); await GetAliases();
_aliasid = -1; _aliasid = -1;
_aliasname = ""; _aliasname = "";
StateHasChanged(); StateHasChanged();
} }
else // Duplicate alias
{
AddModuleMessage(Localizer["Message.Aliases.Taken"], MessageType.Warning);
await ScrollToPageTop();
}
}
}
} }
private async Task CancelAlias() private async Task CancelAlias()