public override async Task <BooksReply> GetBooks(GetBooksRequest request, ServerCallContext context)
        {
            var books = await _mediator.Send(new GetBooksQuery
            {
                Title       = request.Title,
                CategoryIds = request.CategoryIds.Count > 0 ? request.CategoryIds.Select(s => new Guid(s)).ToList() : new List <Guid> {
                },
                LenderId    = !string.IsNullOrEmpty(request.LenderId) ? new Guid(request.LenderId) : Guid.Empty,
                IsAvailable = request.IsAvailable
            });

            var bookReplyList = new List <BookReply>();

            foreach (var book in books.Books)
            {
                var bookReply = new BookReply
                {
                    Id     = book.Id.ToString(),
                    Title  = book.Title,
                    Lender = null
                };
                bookReply.CategoryIds.Add(book.Categories.Select(s => new CategoryReply {
                    Id = s.Id.ToString(), Name = s.Name
                }));
                bookReplyList.Add(bookReply);
            }

            var booksReply = new BooksReply();

            booksReply.Books.AddRange(bookReplyList);
            return(booksReply);
        }
        public async Task <IEnumerable <BookDto> > Handle(GetBooksRequest request, CancellationToken cancellationToken)
        {
            var booksCriteria = new BooksQueryCriteria
            {
                Ids = request.Ids
            };

            return(_mapper.Map <IEnumerable <BookDto> >(await _bookRepository.Query <Book, IEnumerable <Book>, BooksQueryCriteria>(booksCriteria)));
        }
Beispiel #3
0
        public HttpResponseMessage GetBooks([FromUri] GetBooksRequest bookReq)
        {
            try
            {
                var books    = _bookFactory.GetAllBooks();
                var response = Request.CreateResponse(HttpStatusCode.OK);
                response.Content = new StringContent(JsonConvert.SerializeObject(books), System.Text.Encoding.UTF8, "application/json");

                return(response);
            }
            catch (Exception e)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e));
            }
        }
Beispiel #4
0
        public async override Task <GetBooksReply> GetBooks(GetBooksRequest request, ServerCallContext context)
        {
            var getBooksResult = await this.mediator
                                 .Send(new GetBooks(), cancellationToken : context.CancellationToken);

            if (!getBooksResult.IsSuccess)
            {
                throw new RpcException(getBooksResult.ToStatus(), getBooksResult.Error?.Description);
            }

            var books = getBooksResult.Value?
                        .ToRpcModel();

            return(new GetBooksReply
            {
                Books = { books },
            });
        }
Beispiel #5
0
        public GetBooksResponse GetBooks(GetBooksRequest request)
        {
            var response = new GetBooksResponse()
            {
                Request       = request,
                ResponseToken = Guid.NewGuid()
            };

            try
            {
                response.Books   = _repository.FindAll().MapToViews();
                response.Success = true;
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;
                response.Success = false;
            }

            return(response);
        }
Beispiel #6
0
        public IHttpActionResult Get()
        {
            var loggedUserId = HttpContext.Current.GetOwinContext().GetUserId();

            var request = new GetBooksRequest()
            {
                RequestToken = Guid.NewGuid(),
                UserId       = loggedUserId
            };

            var response = _service.GetBooks(request);

            if (!response.Success)
            {
                return(BadRequest(response.Message));
            }

            return(Ok(
                       new
            {
                books = response.Books.MapToViewModels()
            }
                       ));
        }
Beispiel #7
0
 protected override async Task <AbstractAnswer <IEnumerable <Book> > > HandleAsync(GetBooksRequest request, CancellationToken cancellationToken)
 {
     return(CreateSuccessAnswer(await _bookQuery.InvokeAsync()));
 }
 public async Task <IActionResult> GetBooks([FromQuery] GetBooksRequest request)
 => await Mediator
 .Send(new GetBooksQuery(request))
 .ToOkResult();
Beispiel #9
0
 public async Task <IEnumerable <BookDto> > GetAll([FromQuery] GetBooksRequest request)
 {
     return(await _bookService.GetBooks(request));
 }
Beispiel #10
0
 public async Task <IEnumerable <BookDto> > GetBooks(GetBooksRequest request)
 {
     return(await _cacheService.OptimeseWithCache(request.GetUniqueHash(), async() => await _mediator.Send(request)));
 }
Beispiel #11
0
        public async Task <Result <IEnumerable <Book> > > Handle(GetBooksRequest request, CancellationToken cancellationToken)
        {
            IEnumerable <Book> books = await dbContext.Books.ToListAsync();

            return(Result.Success(books));
        }
Beispiel #12
0
 public GetBooksQuery(GetBooksRequest request) : base(request, ApiRoutes.Books.Get)
 {
     Add <BookTitleParameter>(request.Title);
     Add <BookAuthorNameParameter>(request.Author);
 }