public TOut LoadJewelryCollection <TOut>(TOut viewModel) where TOut : ITabsViewModel
        {
            var dynamicSQLObject = GetDynamicSQLStringBytabKeyAndID(tabKey, tabId);

            jewelRepository.Page(page);
            jewelRepository.ItemsPerPage(itemsPerPage);



            var jewelMediaType = JewelMediaTypeFilter.Value;

            jewelRepository.FilterMediaByMetal(jewelMediaType);
            jewelRepository.OrderJewelryItemsBy(OrderByPriceFilter.DynamicOrderBy());

            if (CustomFiltersStateList.Count > 0)
            {
                var dynamicSQLList =
                    CustomFiltersStateList.Select(x => ConvertCustomFilterStateToDynamicSQL(x)).ToList();

                jewelRepository.AddFilterList(dynamicSQLList);
            }


            var jewelList = jewelRepository.GetJewelsByDynamicSQL(dynamicSQLObject);

            viewModel.JewelryInTabContainersCollection = MapJewelsToInTabContainers(jewelList);

            var totalItems = jewelRepository.TotalItems;

            viewModel.TotalPages = CalculateTotalPages(totalItems);

            return(viewModel);
        }