コード例 #1
0
        protected override async Task <DetailsViewModel> ProcessAsync(DetailsQuery query)
        {
            var response = await ErrorSafe
                           .WithLogger(logger)
                           .ExecuteAsync(() => restClient.For(
                                             UrlBuilder.Host(settings.Value.BaseUrl).Route($"books/{query.Id}")
                                             ).AcceptJson()
                                         .Timeout(1000)
                                         .RetryOnFailure(2)
                                         .GetAsync <BookDetailsDto>());

            var dto = response.Value?.Output;

            if (dto == null)
            {
                return(null);
            }

            return(new DetailsViewModel
            {
                Id = dto.Id,
                Title = dto.Title,
                Author = dto.Author,
                Image = dto.Image,
                Price = dto.Price,
                Details = dto.Description,
                ISBN = dto.ISBN,
                Category = dto.Category
            });
        }
コード例 #2
0
        public async Task HandleAsync(HomePageRequestedEvent eEvent)
        {
            var response = await ErrorSafe.WithLogger(logger)
                           .ExecuteAsync(() => restClient.For($"{settings.Value.BaseUrl}/books/latest")
                                         .AcceptJson()
                                         .Timeout(1000)
                                         .RetryOnFailure(2)
                                         .GetAsync <IEnumerable <BookDto> >());

            provider.Set(response.Value?.Output);
        }
コード例 #3
0
        public async Task HandleAsync(SearchPageRequestedEvent eEvent)
        {
            var response = await ErrorSafe.WithLogger(logger)
                           .ExecuteAsync(() => restClient.For(UrlBuilder.Host(settings.Value.BaseUrl).Route("/books/list/{0}", eEvent.Category))
                                         .AcceptJson()
                                         .Timeout(1000)
                                         .RetryOnFailure(2)
                                         .GetAsync <IEnumerable <BookDto> >());

            provider.Set(response.Value?.Output);
        }
        public async Task HandleAsync(T eEvent)
        {
            if (eEvent is IDontRequireCart)
            {
                return;
            }

            var result = await ErrorSafe.WithLogger(logger).ExecuteAsync(() => restClient
                                                                         .For($"{settings.Value.BaseUrl}/cart/{0}", "userid")
                                                                         .Timeout(1000)
                                                                         .GetAsync <IEnumerable <CartItemDto> >());

            provider.Set(new CartDto(result.Value?.Output));
        }
コード例 #5
0
        public Task HandleAsync(T eEvent)
        {
            if (!(eEvent is IRequireSavedItems))
            {
                return(Task.FromResult(0));
            }

            return(ErrorSafe.WithLogger(logger).ExecuteAsync(async() =>
            {
                var response = await restClient.For($"{settings.Value.BaseUrl}/books/{0}/saved", "currentuserid")
                               .GetAsync <IEnumerable <string> >();

                provider.Set(response.Output);
            }));
        }
コード例 #6
0
        public async Task HandleAsync(T eEvent)
        {
            if (!(eEvent is IRequireCategoryMenu))
            {
                return;
            }

            var response = await ErrorSafe.WithLogger(logger)
                           .ExecuteAsync(() => restClient.For($"{settings.Value.BaseUrl}/categories")
                                         .AcceptJson()
                                         .RetryOnFailure(2)
                                         .Timeout(1000)
                                         .GetAsync <IEnumerable <CategoryDto> >());

            context.Set(response.Value?.Output);
        }
コード例 #7
0
        public async Task HandleAsync(T eEvent)
        {
            if (!(eEvent is BookWorm.Web.Features.Shared.Events.IPageRequestedEvent))
            {
                return;
            }

            var response = await ErrorSafe.WithLogger(logger)
                           .ExecuteAsync(() => restClient.For($"{settings.Value.BaseUrl}/users/{0}", "dummyid")
                                         .AcceptJson()
                                         .RetryOnFailure(2)
                                         .Timeout(1000)
                                         .GetAsync <UserDto>());

            context.Set(response.Value?.Output);
        }