public static ImmutableList <Parameter> AddQueryParams <T>(this ImmutableList <Parameter> list, T queryParams) { if (typeof(T) == typeof(SimpleQueryParams) || typeof(T).IsSubclassOf(typeof(SimpleQueryParams))) { var parameters = queryParams as SimpleQueryParams; list = list.AddIfNotNull(AlfrescoNames.Headers.MaxItems, parameters.MaxItems, ParameterType.QueryString) .AddIfNotNull(AlfrescoNames.Headers.SkipCount, parameters.SkipCount, ParameterType.QueryString); } if (typeof(T) == typeof(BasicQueryParams) || typeof(T).IsSubclassOf(typeof(BasicQueryParams))) { var parameters = queryParams as BasicQueryParams; list = list.AddIfNotNull(AlfrescoNames.Headers.Fields, parameters.Fields, ParameterType.QueryString) .AddIfNotNull(AlfrescoNames.Headers.OrderBy, parameters.OrderBy, ParameterType.QueryString); } if (typeof(T) == typeof(AdvancedBasicQueryParams) || typeof(T).IsSubclassOf(typeof(AdvancedBasicQueryParams))) { var parameters = queryParams as AdvancedBasicQueryParams; list = list.AddIfNotNull(AlfrescoNames.Headers.Include, parameters.Include, ParameterType.QueryString) .AddIfNotNull(AlfrescoNames.Headers.Where, parameters.Where, ParameterType.QueryString); } if (typeof(T) == typeof(IncludeFieldsQueryParams) || typeof(T).IsSubclassOf(typeof(IncludeFieldsQueryParams))) { var parameters = queryParams as IncludeFieldsQueryParams; list = list.AddIfNotNull(AlfrescoNames.Headers.Fields, parameters.Fields, ParameterType.QueryString) .AddIfNotNull(AlfrescoNames.Headers.Include, parameters.Include, ParameterType.QueryString); } if (typeof(T) == typeof(BasicNodeQueryParams) || typeof(T).IsSubclassOf(typeof(BasicNodeQueryParams))) { var parameters = queryParams as BasicNodeQueryParams; list = list.AddIfNotNull(AlfrescoNames.Headers.IncludeSource, parameters.IncludeSource, ParameterType.QueryString); } if (typeof(T) == typeof(BasicNodeQueryParamsWithRelativePath) || typeof(T).IsSubclassOf(typeof(BasicNodeQueryParamsWithRelativePath))) { var parameters = queryParams as BasicNodeQueryParamsWithRelativePath; list = list.AddIfNotNull(AlfrescoNames.Headers.RelativePath, parameters.RelativePath, ParameterType.QueryString); } if (typeof(T) == typeof(ContentQueryParams) || typeof(T).IsSubclassOf(typeof(ContentQueryParams))) { var parameters = queryParams as ContentQueryParams; list = list.AddIfNotNull(AlfrescoNames.Headers.Attachment, parameters.Attachment, ParameterType.QueryString); } return(list); }