public async Task HandleAsync_AssureRating_PassedCorrectly()
        {
            //Arrange
            var model = new FeedbackGetModel
            {
                Rating = 5
            };
            var fetchedData         = new List <SessionFeedbackDto>();
            var offset              = 0;
            var limit               = 15;
            var feedbackServiceMock = new Mock <IFeedbackService>();

            feedbackServiceMock.Setup(m => m.GetFeedbackListAsync(model.Rating, offset, limit)).ReturnsAsync <IFeedbackService, List <SessionFeedbackDto> >(fetchedData);

            var handler = new FeedbackGetRequestHandler(feedbackServiceMock.Object);

            //Act
            var actualData = await handler.HandleAsync(model);

            //Assert
            Assert.NotNull(actualData);
            feedbackServiceMock.Verify(m => m.GetFeedbackListAsync(
                                           It.Is <byte>(val => val == model.Rating)
                                           , It.Is <int>(a => a == offset)
                                           , It.Is <int>(a => a == limit)), Times.Once);
        }
        public FeedbackGetModel Create(IQueryCollection queryCol)
        {
            var model = new FeedbackGetModel();

            if (queryCol != null && queryCol.Any() && queryCol.TryGetValue(RatingQueryParamName, out var queryParamValue))
            {
                var strRating = queryParamValue.FirstOrDefault();
                if (!String.IsNullOrEmpty(strRating))
                {
                    if (byte.TryParse(strRating, out var rating))
                    {
                        model.Rating = rating;
                    }
                }
            }

            return(model);
        }
        public async Task <List <SessionFeedbackDto> > HandleAsync(FeedbackGetModel model)
        {
            var rating = model.Rating;

            return(await _feedbackService.GetFeedbackListAsync(rating : rating, offset : 0, limit : 15));
        }