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); }
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); }
public NToastNotifyViewComponent(IToastNotification toastNotification, ILibrary library, NToastNotifyOption nToastNotifyOption) { _toastNotification = toastNotification; _library = library; _nToastNotifyOption = nToastNotifyOption; }
/// <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); }