public bool IsVisible(IHttpRequest httpReq, Format format, string operationName)
        {
            if (EndpointHost.Config != null && !EndpointHost.Config.EnableAccessRestrictions)
            {
                return(true);
            }

            Operation operation;

            OperationNameMap.TryGetValue(operationName.ToLower(), out operation);
            if (operation == null)
            {
                return(false);
            }

            var isVisible = IsVisible(httpReq, operation);

            if (!isVisible)
            {
                return(false);
            }

            if (operation.RestrictTo == null)
            {
                return(true);
            }
            var allowsFormat = operation.RestrictTo.CanShowTo((EndpointAttributes)(long)format);

            return(allowsFormat);
        }
        public bool CanAccess(EndpointAttributes reqAttrs, Format format, string operationName)
        {
            if (EndpointHost.Config != null && !EndpointHost.Config.EnableAccessRestrictions)
            {
                return(true);
            }

            Operation operation;

            OperationNameMap.TryGetValue(operationName.ToLower(), out operation);
            if (operation == null)
            {
                return(false);
            }

            if (operation.RestrictTo == null)
            {
                return(true);
            }

            var allow = operation.RestrictTo.HasAccessTo(reqAttrs);

            if (!allow)
            {
                return(false);
            }

            var allowsFormat = operation.RestrictTo.HasAccessTo((EndpointAttributes)(long)format);

            return(allowsFormat);
        }
        public HystrixCommand GetHystrixCommandByOpName(string operationName)
        {
            Operation operation;

            OperationNameMap.TryGetValue(operationName.ToLower(), out operation);
            return(operation != null ? operation.HystrixCommand : null);
        }
        public Type GetResponseTypeByOpName(string operationName)
        {
            Operation operation;

            OperationNameMap.TryGetValue(operationName.ToLower(), out operation);
            return(operation != null ? operation.ResponseType : null);
        }
        public Operation GetOperationByOpName(string operationName)
        {
            Operation op;

            OperationNameMap.TryGetValue(operationName.ToLower(), out op);
            return(op);
        }
 public bool HasOperation(string operationName)
 {
     if (operationName == null)
     {
         return(false);
     }
     return(OperationNameMap.ContainsKey(operationName.ToLower()));
 }
        public void AfterInit()
        {
            foreach (var restPath in Routes.RestPaths)
            {
                Operation operation;
                if (!OperationNameMap.TryGetValue(restPath.OperationName.ToLower(), out operation))
                {
                    continue;
                }

                operation.Routes.Add(restPath);
            }
        }