public async Task <IActionResult> GetExpirationDates([FromQuery] ExpirationDatesFilterParams filterParams)
        {
            Expression <Func <ExpirationDate, object> >[] includings = new Expression <Func <ExpirationDate, object> > [2];

            if (filterParams.WithEmployees)
            {
                includings[0] = x => x.CollectedBy;
            }
            if (filterParams.WithProducts)
            {
                includings[1] = x => x.Product;
            }

            string userIdToFilter = (User.IsInRole("Admin") || User.IsInRole("Manager")) ? null : (await _userManager.GetUserAsync(User)).Id;

            PagedList <ExpirationDate> paginatedExpirationDates = await _repo.GetPaginated(filterParams.ExpirationDatesFiltersAsOneExpression(userIdToFilter), dbSet => dbSet.OrderBy(exp => exp.Collected ? 1 : 0).ThenBy(exp => exp.EndDate), filterParams, includings);

            Response.AddPagination(paginatedExpirationDates.CurrentPage, paginatedExpirationDates.PageSize, paginatedExpirationDates.TotalCount, paginatedExpirationDates.TotalPages);

            return(Ok(_mapper.Map <IEnumerable <ExpirationDateVM> >(paginatedExpirationDates.Items)));
        }