Example #1
0
        /// <summary>
        /// Add services required to host the server-side
        /// data portal.
        /// </summary>
        /// <param name="builder"></param>
        public static CslaDataPortalConfiguration AddServerSideDataPortal(this CslaDataPortalConfiguration builder)
        {
            var services = builder.Services;

            services.TryAddTransient(typeof(Server.IDataPortalServer), typeof(Csla.Server.DataPortal));
            services.TryAddTransient <Server.DataPortalSelector>();
            services.TryAddTransient <Server.SimpleDataPortal>();
            services.TryAddTransient <Server.FactoryDataPortal>();
            services.TryAddTransient <Server.DataPortalBroker>();
            services.TryAddSingleton(typeof(Server.Dashboard.IDashboard), typeof(Csla.Server.Dashboard.NullDashboard));
            return(builder);
        }
        /// <summary>
        /// Configure data portal client to use LocalProxy.
        /// </summary>
        /// <param name="config">CslaDataPortalConfiguration object</param>
        /// <param name="options">Data portal proxy options</param>
        public static CslaDataPortalConfiguration UseLocalProxy(this CslaDataPortalConfiguration config, Action <LocalProxyOptions> options)
        {
            var existingOptions = config.Services.Where(i => i.ServiceType.Equals(typeof(IDataPortalProxy))).FirstOrDefault();

            if (existingOptions?.ImplementationInstance is not LocalProxyOptions proxyOptions)
            {
                proxyOptions = new LocalProxyOptions();
            }
            options?.Invoke(proxyOptions);
            config.Services.AddTransient <IDataPortalProxy, LocalProxy>();
            config.Services.AddTransient((p) => proxyOptions);
            return(config);
        }
Example #3
0
        /// <summary>
        /// Configure data portal client to use RabbitMqProxy.
        /// </summary>
        /// <param name="config">CslaDataPortalConfiguration object</param>
        /// <param name="options">Data portal proxy options</param>
        public static CslaDataPortalConfiguration UseHttpProxy(
            this CslaDataPortalConfiguration config, Action <Csla.Channels.RabbitMq.RabbitMqProxyOptions> options)
        {
            var proxyOptions = new Csla.Channels.RabbitMq.RabbitMqProxyOptions();

            options?.Invoke(proxyOptions);
            config.Services.AddTransient(typeof(IDataPortalProxy),
                                         sp =>
            {
                var applicationContext = sp.GetRequiredService <ApplicationContext>();
                return(new Csla.Channels.RabbitMq.RabbitMqProxy(applicationContext, proxyOptions));
            });
            return(config);
        }
 /// <summary>
 /// Configure data portal client to use LocalProxy.
 /// </summary>
 /// <param name="config">CslaDataPortalConfiguration object</param>
 public static CslaDataPortalConfiguration UseLocalProxy(this CslaDataPortalConfiguration config)
 {
     return(UseLocalProxy(config, null));
 }