protected override void Load(ContainerBuilder builder) { builder.RegisterAssemblyTypes(ThisAssembly) .Where(t => t.Name.EndsWith("Repository")) .WithParameter("context", new PetStoreContext()) .WithParameter("retryPolicy", PollyFactory.CreateAsyncRetryPolicy()) .AsImplementedInterfaces(); }
public IList <MaxPriceItemByName> GetHighestCostItems() { const string uri = "/items/group/name/agg/max(price)"; var response = PollyFactory .CreateGetPolicy <IList <MaxPriceItemByName> >() .Execute(() => _client.Execute <IList <MaxPriceItemByName> >(new RestRequest(uri, Method.GET))); return(response.IsSuccessful ? response.Data : throw response.ErrorException); }
public MaxPriceItemByName GetHighestCostItemByName(string name) { var uri = $"/items/group/name/agg/max(price)?name={name}"; var response = PollyFactory .CreateGetPolicy <MaxPriceItemByName>() .Execute(() => _client.Execute <MaxPriceItemByName>(new RestRequest(uri, Method.GET))); return(response.IsSuccessful || response.StatusCode == HttpStatusCode.NotFound ? response.Data : throw response.ErrorException); }
public async Task CreateAsyncRetryPolicy_NoException() { //arrange var retyPolicy = PollyFactory.CreateAsyncRetryPolicy(); int i = 0; //act await retyPolicy.ExecuteAsync(async() => { await Task.Delay(1); // This is here so there is something to await i++; }); //assert Assert.Equal(1, i); }
public async Task CreateAsyncRetryPolicy_Exception() { //arrange var retyPolicy = PollyFactory.CreateAsyncRetryPolicy(); int i = 0; //act Exception ex = await Assert.ThrowsAsync <Exception>(() => retyPolicy.ExecuteAsync(() => { i++; throw new Exception($"Run number {i}"); })); //assert Assert.Equal("Run number 6", ex.Message); }