Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }