コード例 #1
0
        internal static string GetAllowedMethods(DataServiceConfiguration configuration, RequestDescription description)
        {
            if ((description.TargetKind == RequestTargetKind.Metadata) || (description.TargetKind == RequestTargetKind.ServiceDirectory))
            {
                return("GET");
            }
            if (description.TargetKind == RequestTargetKind.Batch)
            {
                return("POST");
            }
            int indexOfTargetEntityResource    = description.GetIndexOfTargetEntityResource();
            ResourceSetWrapper targetContainer = description.SegmentInfos[indexOfTargetEntityResource].TargetContainer;

            return(GetAllowedMethods(configuration, targetContainer, description));
        }
コード例 #2
0
ファイル: RequestUriProcessor.cs プロジェクト: nickchal/pash
 private static void InvokeRequestExpression(RequestDescription description, IDataService service)
 {
     HttpVerbs httpVerb = service.OperationContext.Host.HttpVerb;
     bool flag = (httpVerb == HttpVerbs.POST) && (description.TargetSource == RequestTargetSource.ServiceOperation);
     if ((httpVerb == HttpVerbs.GET) || flag)
     {
         System.Data.Services.SegmentInfo lastSegmentInfo = description.LastSegmentInfo;
         if ((httpVerb == HttpVerbs.GET) && (description.TargetSource == RequestTargetSource.Property))
         {
             lastSegmentInfo = description.SegmentInfos[description.GetIndexOfTargetEntityResource()];
         }
         if ((lastSegmentInfo.RequestExpression != null) && (lastSegmentInfo.RequestEnumerable == null))
         {
             lastSegmentInfo.RequestEnumerable = service.ExecutionProvider.GetResultEnumerableFromRequest(lastSegmentInfo);
         }
     }
 }
コード例 #3
0
 internal static string GetAllowedMethods(DataServiceConfiguration configuration, RequestDescription description)
 {
     if ((description.TargetKind == RequestTargetKind.Metadata) || (description.TargetKind == RequestTargetKind.ServiceDirectory))
     {
         return "GET";
     }
     if (description.TargetKind == RequestTargetKind.Batch)
     {
         return "POST";
     }
     int indexOfTargetEntityResource = description.GetIndexOfTargetEntityResource();
     ResourceSetWrapper targetContainer = description.SegmentInfos[indexOfTargetEntityResource].TargetContainer;
     return GetAllowedMethods(configuration, targetContainer, description);
 }
コード例 #4
0
 /// <summary>Gets a string with methods allowed on the target for the <paramref name="description"/>.</summary>
 /// <param name="configuration">configuration object which has the data</param>
 /// <param name="description">Description with target.</param>
 /// <returns>A string with methods allowed on the description; possibly null.</returns>
 internal static string GetAllowedMethods(DataServiceConfiguration configuration, RequestDescription description)
 {
     Debug.Assert(description != null, "description != null");
     Debug.Assert(
         description.TargetKind != RequestTargetKind.Nothing,
         "description.TargetKind != RequestTargetKind.Void - otherwise it hasn't been determined yet");
     Debug.Assert(
         description.TargetKind != RequestTargetKind.VoidServiceOperation,
         "description.TargetKind != RequestTargetKind.VoidServiceOperation - this method is only for containers");
     if (description.TargetKind == RequestTargetKind.Metadata ||
         description.TargetKind == RequestTargetKind.ServiceDirectory)
     {
         return XmlConstants.HttpMethodGet;
     }
     else if (description.TargetKind == RequestTargetKind.Batch)
     {
         return XmlConstants.HttpMethodPost;
     }
     else
     {
         int index = description.GetIndexOfTargetEntityResource();
         Debug.Assert(index >= 0 && index < description.SegmentInfos.Length, "index >=0 && index <description.SegmentInfos.Length");
         ResourceSetWrapper container = description.SegmentInfos[index].TargetContainer;
         return GetAllowedMethods(configuration, container, description);
     }
 }