예제 #1
0
        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);
        }
예제 #2
0
        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);
        }