Exemplo n.º 1
0
 internal RequestDescription UpdateVersions(string acceptTypesText, ResourceSetWrapper resourceSet, IDataService service)
 {
     DataServiceHostWrapper host = service.OperationContext.Host;
     if ((host.HttpVerb == HttpVerbs.GET) || ((host.HttpVerb == HttpVerbs.POST) && (this.TargetSource == RequestTargetSource.ServiceOperation)))
     {
         if (this.TargetKind == RequestTargetKind.Resource)
         {
             if (!this.LinkUri)
             {
                 this.InitializeVersion(service.OperationContext);
                 bool considerEpmInVersion = WebUtil.IsAtomResponseFormat(acceptTypesText, this.TargetKind, service.Configuration.DataServiceBehavior.MaxProtocolVersion, this.requestMaxVersion);
                 Version version = resourceSet.MinimumResponsePayloadVersion(service, considerEpmInVersion);
                 this.VerifyAndRaiseResponseVersion(version, service);
             }
         }
         else if (((this.TargetResourceType != null) && (this.CountOption != RequestQueryCountOption.ValueOnly)) && (this.TargetKind != RequestTargetKind.MediaResource))
         {
             this.VerifyAndRaiseResponseVersion(this.TargetResourceType.MetadataVersion, service);
         }
         else if (this.TargetKind == RequestTargetKind.OpenProperty)
         {
             this.InitializeVersion(service.OperationContext);
             Version effectiveMaxResponseVersion = WebUtil.GetEffectiveMaxResponseVersion(service.Configuration.DataServiceBehavior.MaxProtocolVersion, this.requestMaxVersion);
             this.VerifyAndRaiseResponseVersion(effectiveMaxResponseVersion, service);
         }
     }
     else if (host.HttpVerb == HttpVerbs.PATCH)
     {
         this.VerifyProtocolVersion(Version3Dot0, service);
         this.VerifyRequestVersion(Version3Dot0, service);
     }
     return this;
 }