public async Task <List <EventfulEvent> > GetEventsAsync(SearchRequest search) { EventfulResponse[] collectionOfResponse = null; int totalEvent = 0; try { totalEvent = GetEventCount(search); var numOfCallsNeeded = (int)Math.Ceiling((double)totalEvent / LARGE_NUMBER); var tasks = new List <Task <EventfulResponse> >(numOfCallsNeeded); for (int i = 1; i <= numOfCallsNeeded; i++) { var request = Create(search, i); tasks.Add(_proxy.ExecuteAsync <EventfulResponse>(request)); } collectionOfResponse = await Task.WhenAll(tasks).ConfigureAwait(false); } catch (Exception e) { throw new ApplicationException("Error interfacing with Eventful", e); } var ret = new List <EventfulEvent>(totalEvent); foreach (var resp in collectionOfResponse) { ret.AddRange(resp.Events); } return(ret); }
public async Task <Guid> PublishMessageAsync <T>(T message, CancellationToken cancellationToken = default(CancellationToken)) where T : IMessage { Guard.ThrowIfNull(message, nameof(message)); var serializedMessage = _serializer.Serialize(message); var createRequest = await CreateRequest(serializedMessage, cancellationToken); cancellationToken.ThrowIfCancellationRequested(); IRestResponse response; try { response = await _restProxy.ExecuteAsync(createRequest, cancellationToken); } catch (Exception exception) { throw new UnableToCreateMessageException(@"Error posting to Message Bus API", exception); } const HttpStatusCode expectedStatusCode = HttpStatusCode.Created; var returnedStatusCode = response.HttpStatusCode; if (returnedStatusCode != expectedStatusCode) { throw new UnableToCreateMessageException( $"Unexpected HTTP status code, received {returnedStatusCode}, expected {expectedStatusCode}."); } var createdMessageId = Guid.Parse(response.ResponseBody); return(createdMessageId); }