private string ExecuteMultiRequest(Func <IParameters, PrtgUrl> getUrl, IMultiTargetParameters parameters, Func <HttpResponseMessage, string> responseParser = null) { var allIds = parameters.ObjectIds; try { for (int i = 0; i < allIds.Length; i += BatchLimit) { parameters.ObjectIds = allIds.Skip(i).Take(BatchLimit).ToArray(); ExecuteRequest(getUrl(parameters), responseParser); } } finally { parameters.ObjectIds = allIds; } return(string.Empty); }
internal async Task <string> ExecuteMultiRequestAsync(Func <IParameters, PrtgUrl> getUrl, IMultiTargetParameters parameters, Func <HttpResponseMessage, Task <string> > responseParser = null) { var allIds = parameters.ObjectIds; try { for (int i = 0; i < allIds.Length; i += BatchLimit) { parameters.ObjectIds = allIds.Skip(i).Take(BatchLimit).ToArray(); await ExecuteRequestAsync(getUrl(parameters), responseParser).ConfigureAwait(false); } } finally { parameters.ObjectIds = allIds; } return(string.Empty); }
private PrtgResponse ExecuteMultiRequest(Func <IParameters, PrtgRequestMessage> getRequestMessage, IMultiTargetParameters parameters, CancellationToken token, Func <HttpResponseMessage, PrtgResponse> responseParser = null) { var allIds = parameters.ObjectIds; try { for (int i = 0; i < allIds.Length; i += BatchLimit) { parameters.ObjectIds = allIds.Skip(i).Take(BatchLimit).ToArray(); ExecuteRequest(getRequestMessage(parameters), token, responseParser); } } finally { parameters.ObjectIds = allIds; } return(string.Empty); }