/// <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; }