private static IMvcBuilder AddNToastNotifyToMvcBuilder(this IMvcBuilder mvcBuilder, ToastOption defaultOptions = null,
                                                               NToastNotifyOption nToastNotifyOptions = null)
        {
            var services = mvcBuilder.Services;

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

            //Add the file provider to the Razor view engine
            services.Configure <RazorViewEngineOptions>(options =>
            {
                options.FileProviders.Add(GetEmbeddedFileProvider());
            });

            //This is a fix for Feature folders based project structure. Add the view location to ViewLocationExpanders.
            mvcBuilder?.AddRazorOptions(o =>
            {
                o.ViewLocationFormats.Add("/Views/Shared/{0}.cshtml");
            });

            //Add the ToastNotification implementation
            services.AddScoped <IToastNotification, ToastNotification>();

            //Check if a TempDataProvider is already registered.
            var provider         = services.BuildServiceProvider();
            var tempDataProvider = provider.GetService <ITempDataProvider>();

            if (tempDataProvider == null)
            {
                //Add a tempdata provider when one is not already registered
                services.AddSingleton <ITempDataProvider, CookieTempDataProvider>();
            }

            //Add TempDataWrapper for accessing and adding values to tempdata.
            services.AddScoped <ITempDataWrapper, TempDataWrapper>();

            //check if HttpContextAccessor is not registered.
            var httpContextAccessor = provider.GetService <IHttpContextAccessor>();

            if (httpContextAccessor == null)
            {
                services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();
            }

            // Add the toastr default options that will be rendered by the viewcomponent
            defaultOptions = defaultOptions ?? ToastOption.Defaults;
            services.AddSingleton(defaultOptions);

            // Add the NToastifyOptions to the services container for DI retrieval (options that are not rendered as they are not part of the toastr.js plugin)
            nToastNotifyOptions = nToastNotifyOptions ?? NToastNotifyOption.Defaults;
            services.AddSingleton((NToastNotifyOption)nToastNotifyOptions);
            services.AddSingleton <IMessageContainerFactory, MessageContainerFactory>();
            services.AddScoped <NtoastNotifyMiddleware>();
            return(mvcBuilder);
        }
 public ToastrNotification(IMessageContainerFactory messageContainerFactory, NToastNotifyOption nToastNotifyOptions) : base(messageContainerFactory)
 {
     _defaultNtoastNotifyOptions = nToastNotifyOptions;
 }
 public NtoastNotifyAjaxToastsMiddleware(IToastNotification toastNotification, ILogger <NtoastNotifyAjaxToastsMiddleware> logger, NToastNotifyOption nToastNotifyOption)
 {
     _toastNotification  = toastNotification;
     _logger             = logger;
     _nToastNotifyOption = nToastNotifyOption;
 }
 /// <summary>
 /// Toast notification constructor
 /// </summary>
 /// <param name="tempDataWrapper"><see cref="ITempDataWrapper"/></param>
 /// <param name="nToastNotifyOptions">Default toast notify options</param>
 public ToastNotification(ITempDataWrapper tempDataWrapper, NToastNotifyOption nToastNotifyOptions)
 {
     _tempDataWrapper            = tempDataWrapper;
     _defaultNtoastNotifyOptions = nToastNotifyOptions.MergeWith(NToastNotifyOption.Defaults);
 }
Exemple #5
0
        public static IServiceCollection AddNToastNotify(this IServiceCollection services, ToastOption defaultOptions = null, NToastNotifyOption nToastNotifyOptions = null)
        {
            if (services == null)
            {
                throw new ArgumentNullException(nameof(services));
            }

            var assembly = typeof(Components.ToastrViewComponent).GetTypeInfo().Assembly;
            //Create an EmbeddedFileProvider for that assembly
            var embeddedFileProvider = new EmbeddedFileProvider(assembly, "NToastNotify");

            //Add the file provider to the Razor view engine
            services.Configure <RazorViewEngineOptions>(options =>
            {
                options.FileProviders.Add(embeddedFileProvider);
            });

            //Add the ToastNotification implementation
            services.AddScoped <IToastNotification, ToastNotification>();

            //Check if a TempDataProvider is already registered.
            var provider         = services.BuildServiceProvider();
            var tempDataProvider = provider.GetService <ITempDataProvider>();

            if (tempDataProvider == null)
            {
                //Add a tempdata provider when one is not already registered
                services.AddSingleton <ITempDataProvider, CookieTempDataProvider>();
            }

            //Add TempDataWrapper for accessing and adding values to tempdata.
            services.AddScoped <ITempDataWrapper, TempDataWrapper>();

            //check if HttpContextAccessor is not registered.
            var httpContextAccessor = provider.GetService <IHttpContextAccessor>();

            if (httpContextAccessor == null)
            {
                services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();
            }

            // Add the toastr default options that will be rendered by the viewcomponent
            defaultOptions = defaultOptions ?? ToastOption.Defaults;
            services.AddSingleton(defaultOptions);

            // Add the NToastifyOptions to the services container for DI retrieval (options that are not rendered as they are not part of the toastr.js plugin)
            nToastNotifyOptions = nToastNotifyOptions ?? NToastNotifyOption.Defaults;
            services.AddSingleton((NToastNotifyOption)nToastNotifyOptions);
            return(services);
        }
Exemple #6
0
 public NToastNotifyViewComponent(IToastNotification toastNotification, ILibrary library, NToastNotifyOption nToastNotifyOption)
 {
     _toastNotification  = toastNotification;
     _library            = library;
     _nToastNotifyOption = nToastNotifyOption;
 }
Exemple #7
0
 /// <summary>
 /// Toast notification constructor
 /// </summary>
 /// <param name="messageContainerFactory"></param>
 /// <param name="nToastNotifyOptions">Default toast notify options</param>
 public ToastNotification(IMessageContainerFactory messageContainerFactory, NToastNotifyOption nToastNotifyOptions)
 {
     _messageContainer           = messageContainerFactory.Create();
     _defaultNtoastNotifyOptions = nToastNotifyOptions.MergeWith(NToastNotifyOption.Defaults);
 }
 public static IMvcBuilder AddNToastNotify(this IMvcBuilder mvcBuilder, ToastOption defaultOptions = null,
                                           NToastNotifyOption nToastNotifyOptions = null)
 {
     return(AddNToastNotifyToMvcBuilder(mvcBuilder, defaultOptions, nToastNotifyOptions));
 }
 public static IServiceCollection AddNToastNotify(this IServiceCollection services, ToastOption defaultOptions = null, NToastNotifyOption nToastNotifyOptions = null, IMvcBuilder mvcBuilder = null)
 {
     return(services);
 }