Beispiel #1
0
        private async Task <ResourceBody> ExecuteGetAsync(IRequestReader reader, ResponseBuilder response)
        {
            ResourceBody resourceBody = await Endpoint.GetAsync(reader.GetQuery());

            response.AddResource(resourceBody);

            return(resourceBody);
        }
        public async Task <object> GetAsync()
        {
            IRestEndpoint endpoint = GetEndpoint();

            if (!endpoint.EvaluatePreconditions(GetPreconditions()))
            {
                return(StatusCode(HttpStatusCode.NotModified));
            }

            ResourceBody resourceBody = await endpoint.GetAsync(GetQuery());

            ResponseBuilder.AddResource(resourceBody);
            return(Response.ResourceBody); // TODO headers?
        }
Beispiel #3
0
        public async Task FieldSelector_Collection_DoesntThrow()
        {
            var endpointContext = new TestEndpointContext();

            var testQuery = new TestCollectionQuery
            {
                SelectFields = new[] { "Id", "Name" }
            };

            EngineRestCollection <Artist> artistsCollection = IntegratedRestDirectory.GetArtistCollection(endpointContext.Request);
            IRestEndpoint endpoint = endpointContext.Services.EndpointResolver.GetFromResource(endpointContext, artistsCollection);
            var           resource = (CollectionBody)(await endpoint.GetAsync(testQuery));

            Assert.Equal(1, resource.Items.Count());

            var builder = new ResponseBuilder(new Response("/"), endpointContext.Modifiers);

            builder.AddResource(resource);
        }
        private async Task <object> ExecuteWithRequeryAsync(IRequestReader reader, ResponseBuilder response)
        {
            object returnValue = await _executor.ExecuteAsync(reader, response);

            IRestEndpoint endpoint = _executor.Endpoint;

            if (returnValue is AcknowledgmentFeedback ackFeedback &&
                ackFeedback.Acknowledgment is CreatedItemAcknowledgment created)
            {
                endpoint = endpoint.Next(new RawNextPath(created.NewIdentifier.ToString()));
                Debug.Assert(endpoint != null);
            }

            ResourceBody resourceBody = await endpoint.GetAsync(reader.GetQuery());

            response.AddResource(resourceBody);

            return(returnValue);
        }