<commit_before>﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using XOMNI.SDK.Public.Models;
using XOMNI.SDK.Public.Models.Catalog;
using XOMNI.SDK.Public.Extensions;

namespace XOMNI.SDK.Public.Clients.Catalog
{
    public class ItemInStoreMetadataClient : BaseClient
    {
        public ItemInStoreMetadataClient(HttpClient httpClient)
			: base(httpClient)
		{

		}

        public async Task<ApiResponse<List<Metadata>>> GetAsync(int id, int skip, int take, string key = null, string value = null)
		{
            Validator.For(id, "id").IsGreaterThanOrEqual(1);
            
            string path = string.Format("/catalog/items/{0}/storemetadata?", id);
            if(!string.IsNullOrEmpty(key))
            {
                path += string.Format("key={0}&",key);
            }

            if (!string.IsNullOrEmpty(value))
            {
                path += string.Format("value={0}&", value);
            }

            Validator.For(skip, "skip").IsGreaterThanOrEqual(0);
            Validator.For(take, "take").IsGreaterThanOrEqual(1);
			path += string.Format("skip={0}&take={1}",skip,take);

			using (var response = await Client.GetAsync(path).ConfigureAwait(false))
			{
                return await response.Content.ReadAsAsync<ApiResponse<List<Metadata>>>().ConfigureAwait(false);
			}
		}
    }
}<commit_msg>Validation of optional parameters changed.<commit_after>﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using XOMNI.SDK.Public.Models;
using XOMNI.SDK.Public.Models.Catalog;
using XOMNI.SDK.Public.Extensions;

namespace XOMNI.SDK.Public.Clients.Catalog
{
    public class ItemInStoreMetadataClient : BaseClient
    {
        public ItemInStoreMetadataClient(HttpClient httpClient)
			: base(httpClient)
		{

		}

        public async Task<ApiResponse<List<Metadata>>> GetAsync(int id, int skip, int take, string key = null, string value = null)
		{
            Validator.For(id, "id").IsGreaterThanOrEqual(1);
            
            string path = string.Format("/catalog/items/{0}/storemetadata?", id);
            if(!string.IsNullOrEmpty(key) && !string.IsNullOrEmpty(value))
            {
                path += string.Format("key={0}&value={1}&", key, value);
            }

            else if (!string.IsNullOrEmpty(key) || !string.IsNullOrEmpty(value))
            {
                Validator.For(key, "key").IsNotNullOrEmpty();
                Validator.For(value, "value").IsNotNullOrEmpty();
            }

            Validator.For(skip, "skip").IsGreaterThanOrEqual(0);
            Validator.For(take, "take").IsGreaterThanOrEqual(1);

            path += string.Format("skip={0}&take={1}",skip,take);

			using (var response = await Client.GetAsync(path).ConfigureAwait(false))
			{
                return await response.Content.ReadAsAsync<ApiResponse<List<Metadata>>>().ConfigureAwait(false);
			}
		}
    }
}
{'fraction_non_alphanumeric': 0.13427445830597504, 'fraction_numerical': 0.005252790544977019, 'mean_word_length': 2.8472222222222223, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6962310', 'n_tokens_mistral': 941, 'n_tokens_neox': 883, 'n_words': 152}