public void Paginate(Func <ResourceCollection <TResource>, bool> getNextPage, string path = null, object pathParameters = null) { var link = ResolveLink(); var parameters = ParameterHelper.CombineParameters(AdditionalQueryParameters, pathParameters); client.Paginate(path ?? link, parameters, getNextPage); }
public virtual List <TResource> Get(params string[] ids) { ThrowIfServerVersionIsNotCompatible(); if (ids == null) { return(new List <TResource>()); } var actualIds = ids.Where(id => !string.IsNullOrWhiteSpace(id)).ToArray(); if (actualIds.Length == 0) { return(new List <TResource>()); } var resources = new List <TResource>(); var link = ResolveLink(); if (!Regex.IsMatch(link, @"\{\?.*\Wids\W")) { link += "{?ids}"; } var parameters = ParameterHelper.CombineParameters(AdditionalQueryParameters, new { ids = actualIds }); client.Paginate <TResource>( link, parameters, page => { resources.AddRange(page.Items); return(true); }); return(resources); }
public List <TResource> GetAll() { var link = ResolveLink(); var parameters = ParameterHelper.CombineParameters(AdditionalQueryParameters, new { id = IdValueConstant.IdAll }); return(client.Get <List <TResource> >(link, parameters)); }
public async Task Paginate(Func <ResourceCollection <TResource>, bool> getNextPage, string path = null, object pathParameters = null) { var link = await ResolveLink().ConfigureAwait(false); var parameters = ParameterHelper.CombineParameters(GetAdditionalQueryParameters(), pathParameters); await Client.Paginate(path ?? link, parameters, getNextPage).ConfigureAwait(false); }
public virtual async Task <List <TResource> > Get(params string[] ids) { if (ids == null) { return(new List <TResource>()); } var actualIds = ids.Where(id => !string.IsNullOrWhiteSpace(id)).ToArray(); if (actualIds.Length == 0) { return(new List <TResource>()); } var resources = new List <TResource>(); var link = await ResolveLink().ConfigureAwait(false); if (!Regex.IsMatch(link, @"\{\?.*\Wids\W")) { link += "{?ids}"; } var parameters = ParameterHelper.CombineParameters(GetAdditionalQueryParameters(), new { ids = actualIds }); await Client.Paginate <TResource>( link, parameters, page => { resources.AddRange(page.Items); return(true); }) .ConfigureAwait(false); return(resources); }
public async Task <List <TResource> > GetAll() { var link = await ResolveLink().ConfigureAwait(false); var parameters = ParameterHelper.CombineParameters(GetAdditionalQueryParameters(), new { id = IdValueConstant.IdAll }); return(await Client.Get <List <TResource> >(link, parameters).ConfigureAwait(false)); }
public TResource Get(string idOrHref) { if (string.IsNullOrWhiteSpace(idOrHref)) { return(null); } var link = ResolveLink(); if (idOrHref.StartsWith("/", StringComparison.OrdinalIgnoreCase)) { return(client.Get <TResource>(idOrHref, AdditionalQueryParameters)); } var parameters = ParameterHelper.CombineParameters(AdditionalQueryParameters, new { id = idOrHref }); return(client.Get <TResource>(link, parameters)); }
public ResourceCollection <EventResource> List(int skip = 0, int?take = null, string from = null, string to = null, string regarding = null, string regardingAny = null, bool includeInternalEvents = true, string user = null, string users = null, string projects = null, string environments = null, string eventGroups = null, string eventCategories = null, string tenants = null, string tags = null, long?fromAutoId = null, long?toAutoId = null, string documentTypes = null, string eventAgents = null, string projectGroups = null) { var parameters = ParameterHelper.CombineParameters(AdditionalQueryParameters, new { skip, take, from, to, regarding, regardingAny, @internal = includeInternalEvents, user, users, projects, environments, eventGroups, eventCategories, tenants, tags, fromAutoId, toAutoId, documentTypes, eventAgents, projectGroups, }); return(Client.List <EventResource>(Repository.Link("Events"), parameters)); }
public async Task <TaskDetailsResource> GetDetails(TaskResource resource, bool?includeVerboseOutput = null, int?tail = null) { var args = new Dictionary <string, object>(StringComparer.OrdinalIgnoreCase); if (includeVerboseOutput.HasValue) { args.Add("verbose", includeVerboseOutput.Value); } if (tail.HasValue) { args.Add("tail", tail.Value); } var parameters = ParameterHelper.CombineParameters(GetAdditionalQueryParameters(), args); return(await Client.Get <TaskDetailsResource>(resource.Link("Details"), parameters).ConfigureAwait(false)); }
public async Task <TResource> Get(string idOrHref) { if (string.IsNullOrWhiteSpace(idOrHref)) { return(null); } var link = await ResolveLink().ConfigureAwait(false); var additionalQueryParameters = GetAdditionalQueryParameters(); var parameters = ParameterHelper.CombineParameters(additionalQueryParameters, new { id = idOrHref }); var getTask = idOrHref.StartsWith("/", StringComparison.OrdinalIgnoreCase) ? Client.Get <TResource>(idOrHref, additionalQueryParameters).ConfigureAwait(false) : Client.Get <TResource>(link, parameters).ConfigureAwait(false); return(await getTask); }
public async Task <ResourceCollection <EventResource> > List(int skip = 0, string filterByUserId = null, string regardingDocumentId = null, bool includeInternalEvents = false) { return(await Client.List <EventResource>(await Repository.Link("Events").ConfigureAwait(false), ParameterHelper.CombineParameters(GetAdditionalQueryParameters(), new { skip, user = filterByUserId, regarding = regardingDocumentId, @internal = includeInternalEvents.ToString() })).ConfigureAwait(false)); }