ServiceStack.ContentFormat.GetRequestAttribute C# (CSharp) Метод

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

public static GetRequestAttribute ( string httpMethod ) : RequestAttributes
httpMethod string
Результат RequestAttributes
        public static RequestAttributes GetRequestAttribute(string httpMethod)
        {
            switch (httpMethod.ToUpper())
            {
                case HttpMethods.Get:
                    return RequestAttributes.HttpGet;
                case HttpMethods.Put:
                    return RequestAttributes.HttpPut;
                case HttpMethods.Post:
                    return RequestAttributes.HttpPost;
                case HttpMethods.Delete:
                    return RequestAttributes.HttpDelete;
                case HttpMethods.Patch:
                    return RequestAttributes.HttpPatch;
                case HttpMethods.Head:
                    return RequestAttributes.HttpHead;
                case HttpMethods.Options:
                    return RequestAttributes.HttpOptions;
            }

            return RequestAttributes.HttpOther;
        }
    }

Usage Example

Пример #1
0
        public static RequestAttributes GetAttributes(this IRequest request)
        {
            if (HostContext.DebugMode &&
                request.QueryString != null)    //Mock<IHttpRequest>
            {
                var simulate = request.QueryString["simulate"];
                if (simulate != null)
                {
                    return(ToRequestAttributes(simulate.Split(',')));
                }
            }

            var portRestrictions = RequestAttributes.None;

            portRestrictions |= ContentFormat.GetRequestAttribute(request.Verb);
            portRestrictions |= request.IsSecureConnection ? RequestAttributes.Secure : RequestAttributes.InSecure;

            if (request.UserHostAddress != null)
            {
                var isIpv4Address = request.UserHostAddress.IndexOf('.') != -1 &&
                                    request.UserHostAddress.IndexOf("::", StringComparison.InvariantCulture) == -1;

                string ipAddressNumber = null;
                if (isIpv4Address)
                {
                    ipAddressNumber = request.UserHostAddress.SplitOnFirst(":")[0];
                }
                else
                {
                    if (request.UserHostAddress.Contains("]:"))
                    {
                        ipAddressNumber = request.UserHostAddress.SplitOnLast(":")[0];
                    }
                    else
                    {
                        ipAddressNumber = request.UserHostAddress.LastIndexOf("%", StringComparison.InvariantCulture) > 0 ?
                                          request.UserHostAddress.SplitOnLast(":")[0] :
                                          request.UserHostAddress;
                    }
                }

                try
                {
                    ipAddressNumber = ipAddressNumber.SplitOnFirst(',')[0];
                    var ipAddress = ipAddressNumber.StartsWith("::1")
                        ? IPAddress.IPv6Loopback
                        : IPAddress.Parse(ipAddressNumber);
                    portRestrictions |= GetAttributes(ipAddress);
                }
                catch (Exception ex)
                {
                    throw new ArgumentException("Could not parse Ipv{0} Address: {1} / {2}"
                                                .Fmt((isIpv4Address ? 4 : 6), request.UserHostAddress, ipAddressNumber), ex);
                }
            }

            return(portRestrictions);
        }