Beispiel #1
0
        public HttpResponseMessage GetPagined(HttpRequestMessage request, [FromUri] PagingParameterModel pagingparametermodel, [FromUri] string filterAfter, [FromUri] string filterField, [FromUri] string sortMethod)
        {
            return(CreateHttpResponse(request, () =>
            {
                int CurrentPage = pagingparametermodel.pageNumber;
                int PageSize = pagingparametermodel.pageSize;

                IEnumerable <Book> books = service.getBookFilteredPaginated(CurrentPage, PageSize, filterAfter, filterField, sortMethod);

                List <BookViewList> bookList = new List <BookViewList>();

                foreach (Book b in books)
                {
                    BookViewList obj = new BookViewList();
                    obj.title = b.title;
                    obj.bookPic = b.bookPic;
                    obj.releaseDate = b.releaseDate;
                    obj.ID = b.ID;

                    List <GenreViewName> genreView = Mapper.Map <List <Genre>, List <GenreViewName> >(b.genre.ToList());
                    List <AuthorViewName> authorView = Mapper.Map <List <Author>, List <AuthorViewName> >(b.author.ToList());

                    double average = 0;

                    if (b.rating.Select(x => x.ratingScore).Any())
                    {
                        average = b.rating.Select(x => x.ratingScore).Average();
                    }

                    obj.author = authorView;
                    obj.genre = genreView;
                    obj.rating = average;

                    bookList.Add(obj);
                }


                HttpResponseMessage response = null;

                response = request.CreateResponse(HttpStatusCode.OK, bookList, JsonMediaTypeFormatter.DefaultMediaType);

                return response;
            }));
        }
        public HttpResponseMessage GetReviewUsers(HttpRequestMessage request, [FromUri] PagingParameterModel pagingparametermodel, [FromUri] string filterAfter, [FromUri] string filterField, [FromUri] string sortMethod, [FromUri] string IDURL)
        {
            return(CreateHttpResponse(request, () =>
            {
                int CurrentPage = pagingparametermodel.pageNumber;
                int PageSize = pagingparametermodel.pageSize;

                IEnumerable <Review> reviews = service.getReviewAfterUser(IDURL, CurrentPage, PageSize, filterAfter, filterField, sortMethod);

                List <ReviewOfUserView> reviewList = new List <ReviewOfUserView>();

                foreach (Review b in reviews)
                {
                    ReviewOfUserView obj = new ReviewOfUserView();
                    obj.reviewText = b.reviewText;
                    obj.userID = b.userID;
                    obj.bookID = b.bookID;
                    obj.ID = b.ID;
                    obj.ratingScore = 0;
                    obj.addedTime = b.addedTime;

                    UserDataNoPass usr = servUs.getUserAfterID(obj.userID);
                    if (usr != null)
                    {
                        obj.user = usr;
                    }
                    else
                    {
                        obj.user = new UserDataNoPass();
                    }

                    RatingView rati = servRat.getRating(obj.bookID, obj.userID);
                    if (rati != null)
                    {
                        obj.ratingScore = rati.ratingScore;
                    }
                    else
                    {
                        obj.ratingScore = 0;
                    }

                    Book bookOfRev = b.book;
                    BookViewList bookObj = new BookViewList();
                    bookObj.title = bookOfRev.title;
                    bookObj.bookPic = bookOfRev.bookPic;
                    bookObj.releaseDate = bookOfRev.releaseDate;
                    bookObj.ID = bookOfRev.ID;

                    List <GenreViewName> genreView = Mapper.Map <List <Genre>, List <GenreViewName> >(bookOfRev.genre.ToList());
                    List <AuthorViewName> authorView = Mapper.Map <List <Author>, List <AuthorViewName> >(bookOfRev.author.ToList());

                    double average = 0;

                    if (bookOfRev.rating.Select(x => x.ratingScore).Any())
                    {
                        average = bookOfRev.rating.Select(x => x.ratingScore).Average();
                    }

                    bookObj.author = authorView;
                    bookObj.genre = genreView;
                    bookObj.rating = average;

                    obj.book = bookObj;
                    reviewList.Add(obj);
                }

                HttpResponseMessage response = null;

                response = request.CreateResponse(HttpStatusCode.OK, reviewList, JsonMediaTypeFormatter.DefaultMediaType);

                return response;
            }));
        }