Refactor SaveAlias method and add URL protocol check

Restructured the SaveAlias method for improved readability and added a check to handle cases where the _aliasname contains a URL protocol (e.g., "://"). This ensures proper handling of different URL formats.
This commit is contained in:
Cody
2024-01-16 10:43:24 -08:00
committed by GitHub
parent 3cec9f7ee0
commit bfed0ed791

View File

@ -818,10 +818,18 @@
{ {
if (!string.IsNullOrEmpty(_aliasname)) if (!string.IsNullOrEmpty(_aliasname))
{ {
_aliasname = _aliasname.Replace("http://", "").Replace("https://", "");
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)
@ -831,22 +839,26 @@
} }
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
await GetAliases();
_aliasid = -1;
_aliasname = "";
StateHasChanged();
}
else // Duplicate alias
{ {
AddModuleMessage(Localizer["Message.Aliases.Taken"], MessageType.Warning); AddModuleMessage(Localizer["Message.Aliases.Taken"], MessageType.Warning);
await ScrollToPageTop(); await ScrollToPageTop();
} }
} }
await GetAliases();
_aliasid = -1;
_aliasname = "";
StateHasChanged();
} }
} }