GetContentFormat() публичный статический Метод

public static GetContentFormat ( Format format ) : string
format Format
Результат string
Пример #1
0
        public void Register(IAppHost appHost)
        {
            var contentTypes     = (ContentTypes)appHost.ContentTypes;
            var predefinedRoutes = appHost.GetPlugin <PredefinedRoutesFeature>();

            if (predefinedRoutes == null)
            {
                throw new NotSupportedException("SoapFormat requires the PredefinedRoutesFeature Plugin");
            }

            if (!DisableSoap11)
            {
                contentTypes.Register(MimeTypes.Soap11, SoapHandler.SerializeSoap11ToStream, null);
                contentTypes.ContentTypeStringSerializers[MimeTypes.Soap11] = (r, o) =>
                                                                              SoapHandler.SerializeSoap11ToBytes(r, o).FromUtf8Bytes();

                var soap11 = ContentFormat.GetContentFormat(Format.Soap11);
                predefinedRoutes.HandlerMappings[soap11] = () => new Soap11MessageReplyHttpHandler();
            }

            if (!DisableSoap12)
            {
                contentTypes.Register(MimeTypes.Soap12, SoapHandler.SerializeSoap12ToStream, null);
                contentTypes.ContentTypeStringSerializers[MimeTypes.Soap12] = (r, o) =>
                                                                              SoapHandler.SerializeSoap12ToBytes(r, o).FromUtf8Bytes();

                var soap12 = ContentFormat.GetContentFormat(Format.Soap12);
                predefinedRoutes.HandlerMappings[soap12] = () => new Soap12MessageReplyHttpHandler();
            }
        }
Пример #2
0
        private IHttpHandler GetHandlerForPathParts(string[] pathParts)
        {
            var pathController = pathParts[0].ToLowerInvariant();

            if (pathParts.Length == 1)
            {
                if (pathController == "metadata")
                {
                    return(new IndexMetadataHandler());
                }

                return(null);
            }

            var pathAction = pathParts[1].ToLowerInvariant();

#if !NETSTANDARD2_0
            if (pathAction == "wsdl")
            {
                if (pathController == "soap11")
                {
                    return(new Soap11WsdlMetadataHandler());
                }
                if (pathController == "soap12")
                {
                    return(new Soap12WsdlMetadataHandler());
                }
            }
#endif

            if (pathAction != "metadata")
            {
                return(null);
            }

            switch (pathController)
            {
            case "json":
                return(new JsonMetadataHandler());

            case "xml":
                return(new XmlMetadataHandler());

            case "jsv":
                return(new JsvMetadataHandler());

#if !NETSTANDARD2_0
            case "soap11":
                return(new Soap11MetadataHandler());

            case "soap12":
                return(new Soap12MetadataHandler());
#endif

            case "operations":
                return(new CustomResponseHandler((httpReq, httpRes) =>
                                                 HostContext.AppHost.HasAccessToMetadata(httpReq, httpRes)
                            ? HostContext.Metadata.GetOperationDtos()
                            : null, "Operations"));

            default:
                string contentType;
                if (HostContext.ContentTypes
                    .ContentTypeFormats.TryGetValue(pathController, out contentType))
                {
                    var format = ContentFormat.GetContentFormat(contentType);
                    return(new CustomMetadataHandler(contentType, format));
                }
                break;
            }
            return(null);
        }
Пример #3
0
        public virtual IServiceStackHandler ProcessRequest(string httpMethod, string pathInfo, string filePath)
        {
            string metadata = HostContext.Config.MetadataRedirectPath.IsNullOrEmpty()
                ? "/metadata"
                : HostContext.Config.MetadataRedirectPath;

            if (pathInfo.TrimEnd('/').Equals(metadata, StringComparison.OrdinalIgnoreCase))
            {
                if (pathInfo.Length == metadata.Length)
                {
                    return(new IndexMetadataHandler());
                }
                else
                {
                    return new RedirectHttpHandler {
                               RelativeUrl = metadata
                    }
                };
            }

            var pathArray = pathInfo.ToLower().Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries);

            if (pathArray.Length != 2)
            {
                return(null);
            }

            switch (pathArray[0])
            {
            case "json":
                return(pathArray[1] == "metadata" ? new JsonMetadataHandler() : null);

            case "xml":
                return(pathArray[1] == "metadata" ? new XmlMetadataHandler() : null);

            case "jsv":
                return(pathArray[1] == "metadata" ? new JsvMetadataHandler() : null);

#if !NETSTANDARD2_0
            case "soap11":
                return(pathArray[1] == "metadata"
                        ? new Soap11MetadataHandler() as IServiceStackHandler
                        : (pathArray[1] == "wsdl" ? new Soap11WsdlMetadataHandler() : null));

            case "soap12":
                return(pathArray[1] == "metadata"
                        ? new Soap12MetadataHandler() as IServiceStackHandler
                        : (pathArray[1] == "wsdl" ? new Soap12WsdlMetadataHandler() : null));
#endif

            case "operations":
                return(new CustomResponseHandler((httpReq, httpRes) =>
                                                 HostContext.AppHost.HasAccessToMetadata(httpReq, httpRes)
                            ? HostContext.Metadata.GetOperationDtos()
                            : null, "Operations"));

            default:
                string contentType;
                if (HostContext.ContentTypes.ContentTypeFormats.TryGetValue(pathArray[0], out contentType) && pathArray[1] == "metadata")
                {
                    var format = ContentFormat.GetContentFormat(contentType);

                    return(new CustomMetadataHandler(contentType, format));
                }
                return(null);
            }
        }
Пример #4
0
        private IHttpHandler GetHandlerForPathParts(string[] pathParts)
        {
            var pathController = string.Intern(pathParts[0].ToLower());

            if (pathParts.Length == 1)
            {
                if (pathController == "metadata")
                {
                    return(new IndexMetadataHandler());
                }

                return(null);
            }

            var pathAction = string.Intern(pathParts[1].ToLower());

            if (pathAction == "wsdl")
            {
                if (pathController == "soap11")
                {
                    return(new Soap11WsdlMetadataHandler());
                }
                if (pathController == "soap12")
                {
                    return(new Soap12WsdlMetadataHandler());
                }
            }

            if (pathAction != "metadata")
            {
                return(null);
            }

            switch (pathController)
            {
            case "json":
                return(new JsonMetadataHandler());

            case "xml":
                return(new XmlMetadataHandler());

            case "jsv":
                return(new JsvMetadataHandler());

            case "soap11":
                return(new Soap11MetadataHandler());

            case "soap12":
                return(new Soap12MetadataHandler());

            case "types":

                if (HostContext.Config == null ||
                    HostContext.Config.MetadataTypesConfig == null)
                {
                    return(null);
                }

                if (HostContext.Config.MetadataTypesConfig.BaseUrl == null)
                {
                    HostContext.Config.MetadataTypesConfig.BaseUrl = HttpHandlerFactory.GetBaseUrl();
                }

                return(new MetadataTypesHandler {
                    Config = HostContext.Config.MetadataTypesConfig
                });

            case "operations":

                return(new CustomResponseHandler((httpReq, httpRes) =>
                                                 HostContext.AppHost.HasAccessToMetadata(httpReq, httpRes)
                            ? HostContext.Metadata.GetOperationDtos()
                            : null, "Operations"));

            default:
                string contentType;
                if (HostContext.ContentTypes
                    .ContentTypeFormats.TryGetValue(pathController, out contentType))
                {
                    var format = ContentFormat.GetContentFormat(contentType);
                    return(new CustomMetadataHandler(contentType, format));
                }
                break;
            }
            return(null);
        }