Esempio n. 1
0
        public static NavigationServiceBuilder AddProvider <TNavigationItem>(this NavigationServiceBuilder builder,
                                                                             INavigationProvider <TNavigationItem> provider,
                                                                             Action <IServiceProvider, NavigationOptions <TNavigationItem> > configure)
            where TNavigationItem : NavigationItem <TNavigationItem>, new()
        {
            builder.Services.TryAddScoped(typeof(INavigationProvider <TNavigationItem>), serviceProvider => provider);
            builder.Services.TryAddScoped(typeof(NavigationOptions <TNavigationItem>), serviceProvider =>
            {
                var options = new NavigationOptions <TNavigationItem>();
                configure?.Invoke(serviceProvider, options);
                return(options);
            });

            return(builder);
        }
Esempio n. 2
0
        public static NavigationServiceBuilder AddNavigation(this IServiceCollection services)
        {
            if (services == null)
            {
                throw new ArgumentNullException(nameof(services));
            }

            var builder = new NavigationServiceBuilder(services);

            services.AddMemoryCache();
            services.TryAddSingleton <INavigationCache, NavigationCache>();
            services.TryAddScoped(typeof(INavigationBuilder <>), typeof(NavigationBuilder <>));
            services.TryAddScoped(typeof(INavigation <>), typeof(Navigation <>));
            services.TryAddScoped(typeof(IBreadcrumbNavigation <>), typeof(BreadcrumbNavigation <>));

            return(builder);
        }
Esempio n. 3
0
 public static NavigationServiceBuilder AddProvider <TNavigationItem>(this NavigationServiceBuilder builder,
                                                                      INavigationProvider <TNavigationItem> provider,
                                                                      Action <NavigationOptions <TNavigationItem> > configure = null)
     where TNavigationItem : NavigationItem <TNavigationItem>, new()
 => AddProvider(builder, provider, (_, options) => configure?.Invoke(options));
Esempio n. 4
0
 public static NavigationServiceBuilder AddXml <TNavigationItem>(this NavigationServiceBuilder builder,
                                                                 string path,
                                                                 Action <IServiceProvider, NavigationOptions <TNavigationItem> > configure)
     where TNavigationItem : NavigationItem <TNavigationItem>, new()
 => AddProvider(builder, new XmlNavigationProvider <TNavigationItem>(path), configure);
Esempio n. 5
0
 public static NavigationServiceBuilder AddXml <TNavigationItem>(this NavigationServiceBuilder builder,
                                                                 string path,
                                                                 Action <NavigationOptions <TNavigationItem> > configure = null)
     where TNavigationItem : NavigationItem <TNavigationItem>, new()
 => AddXml <TNavigationItem>(builder, path, (_, options) => configure?.Invoke(options));