private async Task <ApiOffersResponse> PostOffersAsync(ApiOffers offers) { IFlurlResponse httpResponse = await Policy .Handle <HttpRequestException>() .Or <FlurlHttpException>() .OrResult <IFlurlResponse>(result => !result.ResponseMessage.IsSuccessStatusCode) .WaitAndRetryAsync(new TimeSpan[] { TimeSpan.FromSeconds(1) }) .ExecuteAsync(async() => await _basicModel.BasicApiOffers.PostJsonAsync(offers)); ApiOffersResponse apiOffersResponse = await httpResponse.GetJsonAsync <ApiOffersResponse>(); return(apiOffersResponse); }
private async Task <List <OffersSerializedResponse> > GetCollectionOffers(int project) { List <OffersSerializedResponse> offersSerialized = new List <OffersSerializedResponse>(); ApiOffers offers = new ApiOffers(project); do { try { ApiOffersResponse apiOffersResponse = await PostOffersAsync(offers); countOffers = apiOffersResponse.Data.SerializedResponse.Count(); offersSerialized.AddRange(apiOffersResponse.Data.SerializedResponse.Select(apiOfferResponse => apiOfferResponse)); offers.IncrementingPage(); } catch (Exception ex) { Console.WriteLine($"message: {ex.Message} // method: GetCollectionOffers "); } } while (countOffers > 0); return(offersSerialized); }