/// <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); }
/// <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)); }