// INTERNAL METHODS ///////////////////////////////////////////////// #region DocumentContextBase Overrides internal override void OnPreConfiguration(IDocumentContextOptions options) { Contract.Requires(options != null); base.OnPreConfiguration(options); options.CreateExtension <ServerDocumentContextExtension>(); }
// PUBLIC CONSTRUCTORS ////////////////////////////////////////////// #region Constructors public DocumentContextImplementation(IDocumentContextOptions options) { Contract.Requires(options != null); this.Options = options; this.LazyDomDocument = this.CreateLazyDomDocument(); this.LazyDocumentReader = this.CreateLazyDocumentReader(); this.LazyDocumentWriter = this.CreateLazyDocumentWriter(); }
// INTERNAL CONSTRUCTORS //////////////////////////////////////////// #region Constructors internal DocumentContextBase(IDocumentContextOptions options) { Contract.Requires(options != null); var lazyImplementation = new Lazy <IDocumentContextImplementation>(() => { var implementation = new DocumentContextImplementation(options); implementation.Configure(this); return(implementation); }); this.LazyImplementation = lazyImplementation; }
internal override void OnPostConfiguration(IDocumentContextOptions options) { Contract.Requires(options != null); base.OnPostConfiguration(options); var coreExtension = options.GetExtension <CoreDocumentContextExtension>(); var serviceModel = coreExtension.ServiceModel; var serverExtension = options.GetExtension <ServerDocumentContextExtension>(); var urlBuilderConfiguration = serverExtension.UrlBuilderConfiguration; var hypermediaContext = new HypermediaContext(serviceModel, urlBuilderConfiguration); serverExtension.HypermediaContext = hypermediaContext; }
// PUBLIC METHODS /////////////////////////////////////////////////// #region Extension Methods public static void CreateExtension <TExtension>(this IDocumentContextOptions documentContextOptions) where TExtension : class, IDocumentContextExtension, new() { Contract.Requires(documentContextOptions != null); // Install new extension if it does not already exist. TExtension extension; var extensionExists = documentContextOptions.TryGetExtension(out extension); if (extensionExists) { return; } extension = new TExtension(); documentContextOptions.AddExtension(extension); }
public static void ModifyExtension <TExtension>(this IDocumentContextOptions documentContextOptions, Action <TExtension> modifyExtensionAction) where TExtension : class, IDocumentContextExtension, new() { Contract.Requires(documentContextOptions != null); Contract.Requires(modifyExtensionAction != null); // Add an extension if it does not already exist. TExtension extension; var extensionExists = documentContextOptions.TryGetExtension(out extension); if (extensionExists == false) { extension = new TExtension(); documentContextOptions.AddExtension(extension); } // Modify either the existing or new extension object. modifyExtensionAction(extension); }
internal virtual void OnPostConfiguration(IDocumentContextOptions options) { }
// INTERNAL METHODS ///////////////////////////////////////////////// #region DocumentContextBase Overrides internal virtual void OnPreConfiguration(IDocumentContextOptions options) { Contract.Requires(options != null); options.CreateExtension <CoreDocumentContextExtension>(); }
public DocumentContext(IDocumentContextOptions options, Document apiDocument) : base(options, apiDocument) { }
// PUBLIC CONSTRUCTORS ////////////////////////////////////////////// #region Constructors public DocumentContext(IDocumentContextOptions options) : base(options) { }
// PUBLIC CONSTRUCTORS ////////////////////////////////////////////// #region Constructors public DocumentContextOptionsBuilder(IDocumentContextOptions options) { Contract.Requires(options != null); this.Options = options; }