public DeltaHandler(RequestHandler other, DeltaSnapshot deltaSnapshot, string deltaToken) : base(other, HttpMethod.GET, deltaSnapshot.QueryUri) { DeltaToken = deltaToken; DeltaSnapshot = deltaSnapshot.Clone(); DeltaItems = new List<ODataItem>(); }
public DeltaHandler(RequestHandler other, DeltaSnapshot deltaSnapshot, string deltaToken) : base(other, HttpMethod.GET, deltaSnapshot.QueryUri) { DeltaToken = deltaToken; DeltaSnapshot = deltaSnapshot.Clone(); DeltaItems = new List <ODataItem>(); }
protected override RequestHandler DispatchHandler() { // TODO: Remove the following if to use Delta framework if (RequestUri.Segments.Length > 0) { int length = RequestUri.Segments.Length; string segment = RequestUri.Segments[length - 1]; string decoded = HttpUtility.UrlDecode(segment); if (decoded == "$delta") { return(new DeltaLinkHandler(this)); } else if (decoded == ServiceConstants.ServicePath_Async) { return(new StatusMonitorRequestHandler(this)); } } if (this.QueryContext.DeltaToken != null) { DeltaSnapshot deltaSnapshot = DeltaContext.GetDeltaQueryByDeltaToken(this.QueryContext.DeltaToken); return(new DeltaHandler(this, deltaSnapshot, this.QueryContext.DeltaToken)); } if (this.QueryContext.QueryPath.FirstSegment == null) { // ServiceDocument request return(new ServiceDocumentHandler(this)); } if (this.QueryContext.QueryPath.FirstSegment is MetadataSegment) { // $metadata request return(new MetadataDocumentHandler(this)); } if (this.QueryContext.QueryPath.LastSegment is OperationSegment || this.QueryContext.QueryPath.LastSegment is OperationImportSegment) { return(new OperationHandler(this, HttpMethod.GET)); } if (this.QueryContext.QueryPath.LastSegment is ValueSegment && this.QueryContext.Target.TypeKind == EdmTypeKind.Primitive) { var primitive = this.QueryContext.Target.Type as IEdmPrimitiveType; if (primitive != null && primitive.PrimitiveKind == EdmPrimitiveTypeKind.Stream) { return(new MediaStreamHandler(this, this.HttpMethod)); } } return(null); }