/// <summary> /// Initialize <see cref="Setup"/>. /// </summary> /// <param name="name">The name of the application.</param> /// <param name="tenant">The tenant that the application itself runs in.</param> /// <param name="level">The run time level for the application itself.</param> /// <remarks>Will setup all mandatory fields for <see cref="Setup"/>, but you might want to override those values when this method returns."/></remarks> public static void Initialize(string name, Tenant tenant, RunTimeLevelEnum level) { InternalContract.RequireNotNullOrWhiteSpace(name, nameof(name)); InternalContract.RequireValidated(tenant, nameof(tenant)); InternalContract.Require(level != RunTimeLevelEnum.None, $"{nameof(level)} ({level}) must be set to something else than {RunTimeLevelEnum.None}"); Setup.Name = name; Setup.Tenant = tenant; Setup.RunTimeLevel = level; Setup.ThreadHandler = ThreadHelper.RecommendedForRuntime; Setup.SynchronousFastLogger = LogHelper.RecommendedSyncLoggerForRuntime; switch (level) { case RunTimeLevelEnum.None: case RunTimeLevelEnum.Development: Setup.LogSeverityLevelThreshold = LogSeverityLevel.Verbose; break; case RunTimeLevelEnum.Test: Setup.LogSeverityLevelThreshold = LogSeverityLevel.Information; break; case RunTimeLevelEnum.ProductionSimulation: case RunTimeLevelEnum.Production: Setup.LogSeverityLevelThreshold = LogSeverityLevel.Warning; break; default: Setup.LogSeverityLevelThreshold = LogSeverityLevel.Verbose; InternalContract.Fail($"Parameter {nameof(level)} had an unexpected value ({level})"); break; } }
/// <summary> /// Sets the recommended application setup for a Web Api. /// </summary> /// <param name="name">The name of the application.</param> /// <param name="tenant">The tenant that the application itself runs in.</param> /// <param name="level">The run time level for the application itself.</param> public static void WebBasicSetup(string name, Tenant tenant, RunTimeLevelEnum level) { FulcrumApplication.Initialize(name, tenant, level); FulcrumApplication.Setup.ThreadHandler = ThreadHelper.RecommendedForRuntime; FulcrumApplication.Setup.SynchronousFastLogger = LogHelper.RecommendedSyncLoggerForRuntime; FulcrumApplication.Setup.FallbackLogger = LogHelper.RecommendedFallbackLoggerForRuntime; FulcrumApplication.AppSettings = new AppSettings(new ConfigurationManagerAppSettings()); }