Exemple #1
0
        /// <summary>
        /// CTOR
        /// </summary>
        /// <param name="next">The request delegate</param>
        /// <param name="options">`MultiTenancyMiddlewareOptions` instance</param>
        public MultiTenancyMiddleware(RequestDelegate next, MultiTenancyMiddlewareOptions options)
        {
            Validate(options);

            _options = options;
            _next    = next;
        }
Exemple #2
0
 /// <summary>
 /// Validates the `options` parameter of the Constructor
 /// </summary>
 /// <param name="options">options to validate</param>
 private static void Validate(MultiTenancyMiddlewareOptions options)
 {
     if (options == null)
     {
         var innerException = new ArgumentNullException("`options` parameter cannot be null.");
         throw new MultiTenancyMiddlewareException("Error in MultiTenancyMiddleware Library. See Inner Exception for details.", innerException);
     }
     else if (string.IsNullOrEmpty(options.TenantIdHeaderKey))
     {
         var innerException = new ArgumentException("`options` parameter must contain a value for `HeaderKey` property when `UseHeaderKey` value is `true`.");
         throw new MultiTenancyMiddlewareException("Error in MultiTenancyMiddleware Library. See Inner Exception for details.", innerException);
     }
 }
Exemple #3
0
        /// <summary>
        /// Extension method allowing for use of `MultiTenancyMiddleware`
        /// </summary>
        /// <param name="builder">`IApplicationBuilder` instance</param>
        /// <param name="options">`MultiTenancyMiddlewareOptions` instance</param>
        /// <returns>`IApplicationBuilder` instance with `MultiTenancyMiddleware` enabled</returns>
        public static IApplicationBuilder UseMultiTenancy(this IApplicationBuilder builder, MultiTenancyMiddlewareOptions options)
        {
            builder.UseMiddleware <MultiTenancyMiddleware>(options);

            return(builder);
        }
 /// <summary>
 /// Implements MiltiTenancy middleware for a given request
 /// </summary>
 /// <param name="app">`IApplicationBuilder` instance</param>
 /// <param name="options">`MultiTenancyMiddlewareOptions` instance</param>
 public void Configure(IApplicationBuilder app, MultiTenancyMiddlewareOptions options)
 {
     app.UseMultiTenancy(options);
 }