using Microsoft.Extensions.DependencyInjection; using System; using zero.Core; using zero.Core.Entities; using zero.Web.Sections; namespace zero.Web { public class ZeroBuilder { public virtual IServiceCollection Services { get; } public virtual ZeroOptions Options { get; } public ZeroBuilder(IServiceCollection services) { Services = services; Services.AddOptions().Configure(opts => ConfigureDefaults(opts)); } void ConfigureDefaults(ZeroOptions opts) { opts.BackofficePath = "/zero"; opts.Sections.Add(); opts.Sections.Add(); opts.Sections.Add(); opts.Sections.Add(); opts.Sections.Add(); } public ZeroBuilder WithOptions(Action configureOptions) { Services.PostConfigure(configureOptions); return this; } //public virtual AuthenticationBuilder AddPolicyScheme(string authenticationScheme, string displayName, Action configureOptions); //public virtual AuthenticationBuilder AddRemoteScheme(string authenticationScheme, string displayName, Action configureOptions) // where TOptions : RemoteAuthenticationOptions, new() // where THandler : RemoteAuthenticationHandler; } }