internal static IMvcCoreBuilder AddModularRazorViewEngine(this IMvcCoreBuilder builder, IServiceProvider services)
 {
     return(builder.AddRazorViewEngine(options =>
     {
         options.ViewLocationExpanders.Add(new CompositeViewLocationExpanderProvider());
     }));
 }
        public static IMvcCoreBuilder AddRazorTemplating(this IMvcCoreBuilder builder)
        {
            builder.AddRazorViewEngine();

            builder.Services.AddRazorTemplating();

            return builder;
        }
예제 #3
0
        /// <summary>
        ///  Adds MVC localization to the application.
        /// </summary>
        /// <param name="builder">The <see cref="IMvcBuilder"/>.</param>
        /// <param name="format">The view format for localized views.</param>
        /// <returns>The <see cref="IMvcBuilder"/>.</returns>
        /// <remarks>
        /// Adding localization also adds support for views via
        /// <see cref="MvcViewFeaturesMvcCoreBuilderExtensions.AddViews(IMvcCoreBuilder)"/> and the Razor view engine
        /// via <see cref="MvcRazorMvcCoreBuilderExtensions.AddRazorViewEngine(IMvcCoreBuilder)"/>.
        /// </remarks>
        public static IMvcCoreBuilder AddViewLocalization(
            [NotNull] this IMvcCoreBuilder builder,
            LanguageViewLocationExpanderFormat format)
        {
            builder.AddViews();
            builder.AddRazorViewEngine();

            MvcLocalizationServices.AddLocalizationServices(builder.Services, format);
            return(builder);
        }
예제 #4
0
    /// <summary>
    /// Register services needed for Razor Pages.
    /// </summary>
    /// <param name="builder">The <see cref="IMvcCoreBuilder"/>.</param>
    /// <returns>The <see cref="IMvcCoreBuilder"/>.</returns>
    public static IMvcCoreBuilder AddRazorPages(this IMvcCoreBuilder builder)
    {
        if (builder == null)
        {
            throw new ArgumentNullException(nameof(builder));
        }

        builder.AddRazorViewEngine();

        AddRazorPagesServices(builder.Services);

        return(builder);
    }
예제 #5
0
        /// <summary>
        ///     Use areas with feature folders and custom options
        /// </summary>
        public static IMvcCoreBuilder AddAreaFeatureFolders(this IMvcCoreBuilder services, AreaFeatureFolderOptions options)
        {
            services.AddRazorViewEngine(o =>
            {
                o.AreaViewLocationFormats.Clear();
                o.AreaViewLocationFormats.Add(options.DefaultAreaViewLocation);
                o.AreaViewLocationFormats.Add(options.AreaFolderName + @"\{2}\{1}\{0}.cshtml");
                o.AreaViewLocationFormats.Add(options.AreaFolderName + @"\{2}\Shared\{0}.cshtml");
                o.AreaViewLocationFormats.Add(options.AreaFolderName + @"\Shared\{0}.cshtml");
                o.AreaViewLocationFormats.Add(options.FeatureFolderName + @"\Shared\{0}.cshtml");
            });

            return(services);
        }
        internal static IMvcCoreBuilder AddModularRazorViewEngine(this IMvcCoreBuilder builder, IServiceProvider services)
        {
            return(builder.AddRazorViewEngine(options =>
            {
                options.ViewLocationExpanders.Add(new CompositeViewLocationExpanderProvider());

                var env = services.GetRequiredService <IHostingEnvironment>();

                if (env.IsDevelopment())
                {
                    options.FileProviders.Insert(0, new ModuleProjectRazorFileProvider(env));
                }
            }));
        }
예제 #7
0
    /// <summary>
    ///  Adds MVC view localization services to the application.
    /// </summary>
    /// <param name="builder">The <see cref="IMvcCoreBuilder"/>.</param>
    /// <param name="format">The view format for localized views.</param>
    /// <returns>The <see cref="IMvcCoreBuilder"/>.</returns>
    /// <remarks>
    /// Adding localization also adds support for views via
    /// <see cref="MvcViewFeaturesMvcCoreBuilderExtensions.AddViews(IMvcCoreBuilder)"/> and the Razor view engine
    /// via <see cref="MvcRazorMvcCoreBuilderExtensions.AddRazorViewEngine(IMvcCoreBuilder)"/>.
    /// </remarks>
    public static IMvcCoreBuilder AddViewLocalization(
        this IMvcCoreBuilder builder,
        LanguageViewLocationExpanderFormat format)
    {
        if (builder == null)
        {
            throw new ArgumentNullException(nameof(builder));
        }

        builder.AddViews();
        builder.AddRazorViewEngine();

        MvcLocalizationServices.AddLocalizationServices(builder.Services, format, setupAction: null);
        return(builder);
    }
예제 #8
0
        internal static IMvcCoreBuilder AddNToastNotifyToMvcBuilder <TNotificationImplementation>(this IMvcCoreBuilder mvcCoreBuilder,
                                                                                                  ILibrary library,
                                                                                                  NToastNotifyOption nToastNotifyOptions)
            where TNotificationImplementation : class, IToastNotification
        {
            //This is a fix for Feature folders based project structure. Add the view location to ViewLocationExpanders.
            mvcCoreBuilder.AddRazorViewEngine(o =>
            {
                o.ViewLocationFormats.Add("/Views/Shared/{0}.cshtml");
            });

            var services = mvcCoreBuilder.Services;

            AddNToastNotifyToServiceCollection <TNotificationImplementation>(services, library, nToastNotifyOptions);
            return(mvcCoreBuilder);
        }
예제 #9
0
        internal static IMvcCoreBuilder AddNToastNotifyToMvcBuilder <TLibrary, TOption, TMessage, TNotificationImplementation>(this IMvcCoreBuilder mvcCoreBuilder,
                                                                                                                               TOption defaultLibOptions,
                                                                                                                               NToastNotifyOption nToastNotifyOptions = null)
            where TLibrary : class, ILibrary <TOption>, new()
            where TOption : class, ILibraryOptions
            where TMessage : class, IToastMessage
            where TNotificationImplementation : class, IToastNotification
        {
            //This is a fix for Feature folders based project structure. Add the view location to ViewLocationExpanders.
            mvcCoreBuilder?.AddRazorViewEngine(o =>
            {
                o.ViewLocationFormats.Add("/Views/Shared/{0}.cshtml");
            });

            var services = mvcCoreBuilder.Services;

            AddNToastNotifyToServiceCollection <TLibrary, TOption, TMessage, TNotificationImplementation>(services, defaultLibOptions, nToastNotifyOptions);
            return(mvcCoreBuilder);
        }
예제 #10
0
    /// <summary>
    /// Register services needed for Razor Pages.
    /// </summary>
    /// <param name="builder">The <see cref="IMvcCoreBuilder"/>.</param>
    /// <param name="setupAction">The action to setup the <see cref="RazorPagesOptions"/>.</param>
    /// <returns>The <see cref="IMvcCoreBuilder"/>.</returns>
    public static IMvcCoreBuilder AddRazorPages(
        this IMvcCoreBuilder builder,
        Action <RazorPagesOptions> setupAction)
    {
        if (builder == null)
        {
            throw new ArgumentNullException(nameof(builder));
        }

        if (setupAction == null)
        {
            throw new ArgumentNullException(nameof(setupAction));
        }

        builder.AddRazorViewEngine();

        AddRazorPagesServices(builder.Services);

        builder.Services.Configure(setupAction);

        return(builder);
    }