You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
798 B
29 lines
798 B
2 years ago
|
using Masa.Blazor.Pro.Global;
|
||
|
using Masa.Blazor.Pro.Global.Nav.Model;
|
||
|
using System.Text.Json;
|
||
|
|
||
|
namespace Microsoft.Extensions.DependencyInjection;
|
||
|
|
||
|
public static class NavServiceCollectionExtensions
|
||
|
{
|
||
|
public static IServiceCollection AddNav(this IServiceCollection services, List<NavModel> navList)
|
||
|
{
|
||
|
services.AddSingleton(navList);
|
||
|
services.AddScoped<NavHelper>();
|
||
|
|
||
|
return services;
|
||
|
}
|
||
|
|
||
|
public static IServiceCollection AddNav(this IServiceCollection services, string navSettingsFile)
|
||
|
{
|
||
|
var navList = JsonSerializer.Deserialize<List<NavModel>>(File.ReadAllText(navSettingsFile));
|
||
|
|
||
|
if (navList is null) throw new Exception("Please configure the navigation first!");
|
||
|
|
||
|
services.AddNav(navList);
|
||
|
|
||
|
return services;
|
||
|
}
|
||
|
}
|
||
|
|