public static T GetCatalogQuery <T>(this IResolveFieldContext context) where T : ICatalogQuery
        {
            var result = AbstractTypeFactory <T> .TryCreateInstance();

            result.StoreId      = context.GetArgumentOrValue <string>("storeId");
            result.UserId       = context.GetArgumentOrValue <string>("userId") ?? context.GetCurrentUserId();
            result.CurrencyCode = context.GetArgumentOrValue <string>("currencyCode");
            result.CultureName  = context.GetArgumentOrValue <string>("cultureName");

            return(result);
        }