示例#1
0
        /// <summary>
        /// Tries to find a content type writer for the provided accepted content types.
        /// </summary>
        /// <param name="accepted">Accepted content types processed in order.</param>
        /// <param name="handlerType">Type of handler processing the request.</param>
        /// <param name="dataType">Optional type of data returned by the handler.</param>
        /// <param name="writer">Writer to provide.</param>
        /// <returns>True if a writer was found for the accepted content types.</returns>
        public static bool TryGetContentTypeWriter(string[] accepted, Type handlerType, Type dataType, out IContentTypeWriter writer)
        {
            var contentTypes = accepted == null ? new[] { "?" } : accepted.Union(new[] { "?" });

            writer = null;

            foreach (var contentType in contentTypes)
            {
                //var contentType = accept.Equals("*/*") ? (ConsiderWildCardContentTypeAs ?? "text/html") : accept;

                IList<IContentTypeHandler> contentHandlers;
                if (ContentTypeToHandlers.TryGetValue(contentType, out contentHandlers))
                {
                    foreach (var contentHandler in contentHandlers)
                    {
                        if (contentHandler.TryGetWriter(contentType, handlerType, dataType, out writer))
                        {
                            break;
                        }
                    }
                }

                if (writer != null)
                {
                    break;
                }
            }

            return writer != null;
        }
示例#2
0
        public bool TryGetWriter(string contentType, Type handlerType, Type dataType, out IContentTypeWriter writer)
        {
            contentType = (contentType.Contains("json") || contentType.Contains("javascript")) ? contentType : "application/json";

            writer = new JsonContentWriter(contentType);

            return true;
        }
        public bool TryGetWriter(string contentType, System.Type handlerType, System.Type dataType, out IContentTypeWriter writer)
        {
            writer = (typeof(FileTransmission).IsAssignableFrom(dataType)) ? new FileTransmissionWriter() : null;

            return writer != null;
        }
        public bool TryGetWriter(string contentType, Type handlerType, Type dataType, out IContentTypeWriter writer)
        {
            writer = dataType == typeof(ReplaceTextInFile) ? new TextReplacementWriter(contentType) : null;

            return writer != null;
        }
        public bool TryGetWriter(string contentType, Type handlerType, Type dataType, out IContentTypeWriter writer)
        {
            writer = dataType == typeof(ReplaceTextInFile) ? new TextReplacementWriter(contentType) : null;

            return(writer != null);
        }
 public PageTypeElementParser(IContentTypeMapper mapper, IContentTypeWriter contentTypeWriter, IPackageReaderContext readerContext)
 {
     _mapper = mapper;
     _contentTypeWriter = contentTypeWriter;
     _readerContext = readerContext ?? NullPackageReaderContext.Instance;
 }
 public PageTypeElementParser(IContentTypeMapper mapper, IContentTypeWriter contentTypeWriter, IPackageReaderContext readerContext)
 {
     _mapper            = mapper;
     _contentTypeWriter = contentTypeWriter;
     _readerContext     = readerContext ?? NullPackageReaderContext.Instance;
 }