Esempio n. 1
0
        /// <summary>
        /// returns list of films based on provided parameters
        /// </summary>
        /// <param name="filmListParametersDto">contains parameters required to filter/sort list of films</param>
        /// <returns></returns>
        public FilmListServiceDto GetFilms(FilmListServiceDto filmListParametersDto)
        {
            var filmsFromDb = _unitOfWork.Films.GetAll();

            if (!ListOfFilterParameters.CheckParameters(filmListParametersDto))
            {
                filmListParametersDto.MaxPageNumber = GetMaxPageNumber(filmsFromDb.Count, filmListParametersDto.PageSize);
                filmListParametersDto.Films = _pagination.PerformPagination(filmsFromDb, filmListParametersDto);

                return filmListParametersDto;
            }

            var result = _filmFiler.Filter(filmsFromDb, filmListParametersDto);
            result.MaxPageNumber = GetMaxPageNumber(result.Films.Count, filmListParametersDto.PageSize);
            result.Films = _pagination.PerformPagination(result.Films, filmListParametersDto);

            return result;
        }