Exemple #1
0
        public async Task <Feedback> ExecuteAsync(IRestCollection collection, IEndpointContext context, ResourceBody body)
        {
            var collectionBody = body as CollectionBody;

            if (collectionBody != null)
            {
                var feedbackItems = new List <Feedback>();

                foreach (RestItemData itemData in collectionBody.Items)
                {
                    CreatedItemAcknowledgment acknowledgment = await collection.AddAsync(itemData);

                    feedbackItems.Add(new AcknowledgmentFeedback(acknowledgment));
                    // TODO: catch exceptions
                }

                return(new MultiFeedback(feedbackItems));
            }

            var itemBody = body as ItemBody;

            if (itemBody != null)
            {
                CreatedItemAcknowledgment acknowledgment = await collection.AddAsync(itemBody.Item);

                return(new AcknowledgmentFeedback(acknowledgment));
            }

            throw new ItemBodyNotSupportedException(body.ResourceType);
        }
Exemple #2
0
        public IRestEndpoint GetFromResource(IEndpointContext endpointContext, [NotNull] IRestResource resource)
        {
            if (resource == null)
            {
                throw new ArgumentNullException(nameof(resource));
            }

            switch (resource)
            {
            case IRestCollection collection:
                return(new RestCollectionEndpoint(endpointContext, collection));

            case IRestItem item:
                return(new RestItemEndpoint(endpointContext, item));

            case IRestScalar scalar:
                return(new RestScalarEndpoint(endpointContext, scalar));

            case IRestDictionary dictionary:
                return(new RestDictionaryEndpoint(endpointContext, dictionary));

            case IRestDirectory directory:
                return(new RestDirectoryEndpoint(endpointContext, directory));

            default:
                throw new IncorrectResourceTypeException(resource.GetType());
            }
        }
        public async Task <long> CreateExampleEntity(IEndpointContext context, DataModel.ExampleEntity entityData)
        {
            var request  = new Messages.CreateExampleEntityDataRequest(entityData);
            var response = await context.ExecuteAsync <Messages.CreateExampleEntityDataResponse>(request).ConfigureAwait(false);

            return(response.CreatedId);
        }
        public async Task <bool> DeleteExampleEntity(IEndpointContext context, [EntityKey] long key)
        {
            var request  = new Messages.DeleteExampleEntityDataRequest(key);
            var response = await context.ExecuteAsync <Messages.DeleteExampleEntityDataResponse>(request).ConfigureAwait(false);

            return(response.Success);
        }
        public async Task <GasPump> UpdatePumpState(IEndpointContext context, string StoreNumber, long id, GasPumpState state)
        {
            var request  = new UpdatePumpStateDataRequest(StoreNumber, id, state);
            var response = await context.ExecuteAsync <UpdatePumpStateDataResponse>(request).ConfigureAwait(false);

            return(response.Pump);
        }
Exemple #6
0
        public async Task <bool> UpdateExampleEntity(IEndpointContext context, [EntityKey] long key, CommerceRuntime.Entities.DataModel.ExampleEntity updatedEntity)
        {
            var request  = new Messages.UpdateExampleEntityDataRequest(key, updatedEntity);
            var response = await context.ExecuteAsync <Messages.UpdateExampleEntityDataResponse>(request).ConfigureAwait(false);

            return(response.Success);
        }
        public async Task <PagedResult <GasPump> > StartAllPumps(IEndpointContext context, string StoreNumber)
        {
            var request  = new StartAllPumpsDataRequest(StoreNumber);
            var response = await context.ExecuteAsync <StartAllPumpsDataResponse>(request).ConfigureAwait(false);

            return(new PagedResult <GasPump>(response.Pumps.AsReadOnly()));
        }
        public async Task <GasStationDetails> GetGasStationDetailsByStore(IEndpointContext context, string StoreNumber)
        {
            var request  = new GetGasStationDetailsDataRequest(StoreNumber);
            var response = await context.ExecuteAsync <GetGasStationDetailsDataResponse>(request).ConfigureAwait(false);

            return(response.Details);
        }
        public async Task <PagedResult <GasPump> > GetGasPumpsByStore(IEndpointContext context, string StoreNumber, QueryResultSettings queryResultSettings)
        {
            var request  = new GetGasPumpsDataRequest(StoreNumber);
            var response = await context.ExecuteAsync <GetGasPumpsDataResponse>(request).ConfigureAwait(false);

            return(new PagedResult <GasPump>(response.GasPumps.AsReadOnly()));
        }
Exemple #10
0
        public async Task <Feedback> ExecuteAsync(IRestItem item, IEndpointContext context, ResourceBody body)
        {
            var itemBody = body as ItemBody;

            if (itemBody == null)
            {
                throw new ItemBodyNotSupportedException(body.ResourceType);
            }

            Acknowledgment acknowledgment = await item.EditAsync(itemBody.Item);

            return(new AcknowledgmentFeedback(acknowledgment));
        }
        public async Task <Feedback> ExecuteAsync(IRestScalar scalar, IEndpointContext context, ResourceBody body)
        {
            var scalarBody = body as ScalarBody;

            if (scalarBody == null)
            {
                throw new InvalidCastException("Request body type must be a scalar value for this endpoint.");
            }

            Acknowledgment acknowledgment = await scalar.EditAsync(scalarBody.Scalar);

            return(new AcknowledgmentFeedback(acknowledgment));
        }
Exemple #12
0
 internal RestCollectionEndpoint(IEndpointContext endpointContext, IRestCollection collection)
 {
     Context    = endpointContext;
     Collection = collection;
 }
        public async Task <Feedback> ExecuteAsync(IRestItem item, IEndpointContext context, ResourceBody body)
        {
            Acknowledgment acknowledgment = await item.DeleteAsync();

            return(new AcknowledgmentFeedback(acknowledgment));
        }
        public async Task <PagedResult <DataModel.ExampleEntity> > GetAllExampleEntities(IEndpointContext context)
        {
            var queryResultSettings = QueryResultSettings.SingleRecord;

            queryResultSettings.Paging = new PagingInfo(10);

            var request = new Messages.ExampleEntityDataRequest()
            {
                QueryResultSettings = queryResultSettings
            };
            var response = await context.ExecuteAsync <Messages.ExampleEntityDataResponse>(request).ConfigureAwait(false);

            return(response.ExampleEntities);
        }
Exemple #15
0
 internal RestItemEndpoint(IEndpointContext endpointContext, IRestItem item)
 {
     Context = endpointContext;
     Item    = item;
 }
        public async Task <Feedback> ExecuteAsync(IRestCollection collection, IEndpointContext context, ResourceBody body)
        {
            var ack = await collection.DeleteAllAsync(null); // TODO query

            return(new AcknowledgmentFeedback(ack));
        }
        public async Task <Feedback> ExecuteAsync(IRestScalar scalar, IEndpointContext context, ResourceBody body)
        {
            Acknowledgment acknowledgment = await scalar.EditAsync(null);

            return(new AcknowledgmentFeedback(acknowledgment));
        }
Exemple #18
0
 internal RestDictionaryEndpoint(IEndpointContext endpointContext, IRestDictionary dictionary)
 {
     Context    = endpointContext;
     Dictionary = dictionary;
 }
Exemple #19
0
 internal RestScalarEndpoint(IEndpointContext endpointContext, IRestScalar scalar)
 {
     Context = endpointContext;
     Scalar  = scalar;
 }
Exemple #20
0
 internal RestDirectoryEndpoint(IEndpointContext endpointContext, IRestDirectory directory)
 {
     Context   = endpointContext;
     Directory = directory;
 }