using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.WebUtilities;
namespace MP.SPEC.Extensions
{
public static class NavigationManagerExtension
{
#region Public Methods
///
/// Estensione metodo NavigationManager x recupero querystring
///
/// https://code-maze.com/query-strings-blazor-webassembly/
///
///
///
///
///
public static T ExtractQueryStringByKey(this NavigationManager navManager, string key)
{
var uri = navManager.ToAbsoluteUri(navManager.Uri);
QueryHelpers.ParseQuery(uri.Query)
.TryGetValue(key, out var queryValue);
if (typeof(T).Equals(typeof(int)))
{
int.TryParse(queryValue, out int result);
return (T)(object)result;
}
if (typeof(T).Equals(typeof(string)))
return (T)(object)queryValue.ToString();
return default;
}
///
/// Recupero base page
///
/// https://stackoverflow.com/questions/50102726/navigationmanager-get-current-url-in-a-blazor-component
///
///
///
public static string Page(this NavigationManager navigation)
{
return navigation.Uri.Substring(navigation.BaseUri.Length);
}
#endregion Public Methods
}
}