Пример #1
0
        // INTERNAL METHODS /////////////////////////////////////////////////
        #region DocumentContextBase Overrides
        internal override void OnPreConfiguration(IDocumentContextOptions options)
        {
            Contract.Requires(options != null);

            base.OnPreConfiguration(options);

            options.CreateExtension <ServerDocumentContextExtension>();
        }
Пример #2
0
        // 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;
        }
Пример #4
0
        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>();
        }
Пример #9
0
 public DocumentContext(IDocumentContextOptions options, Document apiDocument)
     : base(options, apiDocument)
 {
 }
Пример #10
0
 // 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;
        }