//get all products
        public async Task <IActionResult> GetProducts([FromQuery] ProductParams productParams)
        {
            //get products and general data for filters and lists
            var products = await _repo.GetProducts(productParams);

            var generalDataFromRepo = await _repo.GetGeneralData();

            var productsToReturn    = _mapper.Map <IEnumerable <ProductForHomeDto> >(products);
            var generalDataToReturn = _mapper.Map <DataForHomeDto>(generalDataFromRepo);
            //get all products without paging for calculation of counters
            // var itemsBeforePaging = _mapper.Map<IEnumerable<ProductForHomeDto>>(products.AllItems);

            //calculate filters for current products list - currently not in use
            // foreach (var year in generalDataToReturn.Years)
            // {
            //     year.FilteredCounter = itemsBeforePaging.Where(p => p.YearOfCreation == year.Title).Count();
            // }
            // foreach (var degree in generalDataToReturn.Degree)
            // {
            //     degree.FilteredCounter = itemsBeforePaging.Where(p => p.Degree == degree.Title).Count();
            // }
            // foreach (var course in generalDataToReturn.Courses)
            // {
            //     course.FilteredCounter = itemsBeforePaging.Where(p => p.Courses.Any(c => c.Id == course.Id)).Count();
            // }
            // foreach (var org in generalDataToReturn.Organizations)
            // {
            //     org.FilteredCounter = itemsBeforePaging.Where(p => p.OrganizationId == org.Id).Count();
            // }
            // foreach (var orgType in generalDataToReturn.OrganizationTypes)
            // {
            //     orgType.FilteredCounter = itemsBeforePaging.Where(p => p.OrganizationTypes.Any(ot => ot.Id == orgType.Id)).Count();
            // }
            // foreach (var lect in generalDataToReturn.Lecturers)
            // {
            //     lect.FilteredCounter = itemsBeforePaging.Where(p => p.Lecturers.Any(l => l.Id == lect.Id)).Count();
            // }
            // foreach (var task in generalDataToReturn.Tasks)
            // {
            //     task.FilteredCounter = itemsBeforePaging.Where(p => p.TaskId == task.Id).Count();
            // }
            // foreach (var pt in generalDataToReturn.ProductTypes)
            // {
            //     pt.FilteredCounter = itemsBeforePaging.Where(p => p.ProductTypeId == pt.Id).Count();
            // }

            //set all data in one class
            var rootData = new RootForHomeDto();

            rootData.Products    = productsToReturn;
            rootData.GeneralData = generalDataToReturn;

            //add pagination headers
            Response.AddPagination(products.CurrentPage, products.PageSize, products.TotalCount, products.TotalPages);

            return(Ok(rootData));
        }
        public async Task <IActionResult> GetGeneralData()
        {
            var dataForHome = await _repo.GetGeneralData();

            var dataToReturn = _mapper.Map <DataForEditDto>(dataForHome);

            //return Ok(dataForHome);
            return(Ok(dataToReturn));
        }