예제 #1
0
        public Task <QueryResult <T> > GetBoomiObjectsAsync <T>()
            where T : IBoomiObject, ICanQuery
        {
            var response =
                this
                .GetClient().PostAsync <QueryRequest, QueryResult <T> >(
                    BoomiObjectUrlMapper.GetQueryUrl <T>(),
                    new QueryRequest());

            return(response);
        }
        public Task <T> UpdateBoomiObjectAsync <T>(T boomiObject)
            where T : IBoomiObject, ICanUpdate
        {
            var result =
                this
                .GetClient()
                .PostAsync <T, T>(
                    BoomiObjectUrlMapper.GetUpdateUrl <T>(boomiObject.GetId()),
                    boomiObject);

            return(result);
        }
예제 #3
0
        public Task <QueryResult <T> > GetBoomiObjectsAsync <T>(string queryToken)
            where T : IBoomiObject, ICanQuery
        {
            var response =
                this
                .GetClient()
                .PostJsonAsync <QueryResult <T> >(
                    BoomiObjectUrlMapper.GetQueryMoreUrl <T>(),
                    queryToken);

            return(response);
        }
        public Task <T> CreateBoomiObjectAsync <T>(T boomiObject)
            where T : IBoomiObject, ICanCreate
        {
            var result =
                this
                .GetClient()
                .PostAsync <T, T>(
                    BoomiObjectUrlMapper.GetObjectUrl <T>(),
                    boomiObject);

            return(result);
        }
예제 #5
0
 public Task <T> GetBoomiObjectAsync <T>(Guid id)
     where T : IBoomiObject, ICanGet
 {
     return(this.GetClient().GetAsync <T>(BoomiObjectUrlMapper.GetObjectUrl <T>(id)));
 }
 public Task <DeleteResult> DeleteBoomiObjectAsync <T>(string id)
     where T : IBoomiObject, ICanDelete
 {
     return(this.GetClient().DeleteWithResultAsync(BoomiObjectUrlMapper.GetDeleteUrl <T>(id)));
 }
예제 #7
0
 public static string GetUpdateUrl <T>(Guid id)
     where T : IBoomiObject
 {
     return(BoomiObjectUrlMapper.GetUpdateUrl <T>(id.ToString()));
 }
예제 #8
0
        public async Task <IEnumerable <BulkResponse <T> > > GetBoomiObjectsAsync <T>(IEnumerable <Guid> ids)
            where T : IBoomiObject, ICanGet
        {
            var tasks =
                ids
                .Buffer(100)
                .Select(x => new BulkRequest(x))
                .Select(x => this.GetClient().PostAsync <BulkRequest, BulkResult <T> >(BoomiObjectUrlMapper.GetBulkUrl <T>(), x));

            var result = await Task.WhenAll(tasks);

            return(result.SelectMany(x => x.Response));
        }