Exemple #1
0
        /// <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());
 }