public async Task <GetSellerListCustomResponse> GetSellerListCustomAsync(DateTime timeFrom, DateTime timeTo, GetSellerListTimeRangeEnum getSellerListTimeRangeEnum, string mark) { var items = new GetSellerListCustomResponse(); var recordsPerPage = this._itemsPerPage; var pageNumber = 1; var hasMoreItems = false; do { var body = this.CreateGetSellerListCustomRequestBody(timeFrom, timeTo, getSellerListTimeRangeEnum, recordsPerPage, pageNumber); var headers = CreateGetSellerListRequestHeadersWithApiCallName(); await ActionPolicies.GetAsync.Do(async() => { var webRequest = await this.CreateEbayStandartPostRequestAsync(this._endPoint, headers, body, mark, CancellationToken.None).ConfigureAwait(false); using (var memStream = await this._webRequestServices.GetResponseStreamAsync(webRequest, mark, CancellationToken.None).ConfigureAwait(false)) { var getSellerListResponse = new EbayGetSallerListCustomResponseParser().Parse(memStream); if (getSellerListResponse != null) { if (getSellerListResponse.Errors != null) { items.Errors = getSellerListResponse.Errors; return; } hasMoreItems = getSellerListResponse.HasMoreItems; if (getSellerListResponse.Items != null) { items.Items.AddRange(getSellerListResponse.Items); } } } }).ConfigureAwait(false); pageNumber++; } while(hasMoreItems); return(items); }
private async Task <GetSellerListCustomResponse> GetSellerListCustomResponseAsync(CancellationToken ct, DateTime timeFrom, DateTime timeTo, GetSellerListTimeRangeEnum getSellerListTimeRangeEnum, int recordsPerPage, int pageNumber, string mark) { if (ct.IsCancellationRequested) { return(null); } var body = this.CreateGetSellerListCustomRequestBody(timeFrom, timeTo, getSellerListTimeRangeEnum, recordsPerPage, pageNumber); var headers = CreateGetSellerListRequestHeadersWithApiCallName(); GetSellerListCustomResponse getSellerListResponse = null; await ActionPolicies.SubmitAsync.Do(async() => { var webRequest = await this.CreateEbayStandartPostRequestAsync(this._endPoint, headers, body, mark, ct).ConfigureAwait(false); using (var memStream = await this._webRequestServices.GetResponseStreamAsync(webRequest, mark, ct).ConfigureAwait(false)) getSellerListResponse = new EbayGetSallerListCustomResponseParser().Parse(memStream); }).ConfigureAwait(false); return(getSellerListResponse); }