<commit_before>using System;
using System.Net.Http;
using System.Threading.Tasks;
using XOMNI.SDK.Public.Clients;
using XOMNI.SDK.Public.Models;
using XOMNI.SDK.Public.Models.PII;

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

		}

        public async Task DeleteWishlistitemAsync(Guid wishlistItemUniqueKey, int Longitude, int Latitude)
		{
			string path = string.Format("/pii/wishlistitem?wishlistItemUniqueKey={0}&longitude={1}&latitude={2}", wishlistItemUniqueKey, Longitude, Latitude);
            await Client.DeleteAsync(path).ConfigureAwait(false);
		}

        public async Task DeleteWishlistitemsAsync(Guid wishlistUniqueKey, int Longitude, int Latitude)
		{
			string path = string.Format("/pii/wishlistitems?wishlistUniqueKey={0}&longitude={1}&latitude={2}", wishlistUniqueKey, Longitude, Latitude);
            await Client.DeleteAsync(path).ConfigureAwait(false);
		}

        public async Task<ApiResponse<WishlistItem>> PostAsync(Guid wishlistUniqueKey, WishlistItem wishlistItem)
		{
			string path = string.Format("/pii/wishlistitem?wishlistUniqueKey={0}", wishlistUniqueKey);

            using (var response = await Client.PostAsJsonAsync(path, wishlistItem).ConfigureAwait(false))
			{
                return await response.Content.ReadAsAsync<ApiResponse<WishlistItem>>().ConfigureAwait(false);
			}
		}
	}
}<commit_msg>Validation added. Location used instead Lat./Long.<commit_after>using System;
using System.Net.Http;
using System.Threading.Tasks;
using XOMNI.SDK.Public.Clients;
using XOMNI.SDK.Public.Models;
using XOMNI.SDK.Public.Models.PII;
using XOMNI.SDK.Public.Extensions;

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

        }

        public async Task DeleteWishlistItemAsync(Guid wishlistItemUniqueKey, Location location = null)
        {
            string path = string.Format("/pii/wishlistitem?wishlistItemUniqueKey={0}", wishlistItemUniqueKey);

            if (location != null)
            {
                Validator.For(location.Latitude, "Latitude").InRange(-90, 90);
                Validator.For(location.Longitude, "Longitude").InRange(-180, 180);
                path += string.Format("&longitude={0}&latitude={1}", location.Longitude, location.Latitude);
            }
            await Client.DeleteAsync(path).ConfigureAwait(false);
        }

        public async Task DeleteWishlistItemsAsync(Guid wishlistUniqueKey, Location location = null)
        {
            string path = string.Format("/pii/wishlistitems?wishlistUniqueKey={0}", wishlistUniqueKey);

            if (location != null)
            {
                Validator.For(location.Latitude, "Latitude").InRange(-90, 90);
                Validator.For(location.Longitude, "Longitude").InRange(-180, 180);
                path += string.Format("&longitude={0}&latitude={1}", location.Longitude, location.Latitude);
            }
            await Client.DeleteAsync(path).ConfigureAwait(false);
        }

        public async Task<ApiResponse<WishlistItem>> PostAsync(Guid wishlistUniqueKey, WishlistItem wishlistItem)
        {
            Validator.For(wishlistItem, "wishlistItem").IsNotNull();
            Validator.For(wishlistItem.ItemId, "ItemId").IsGreaterThanOrEqual(1);

            if (wishlistItem.LastSeenLocation != null)
            {
                Validator.For(wishlistItem.LastSeenLocation.Latitude, "Latitude").InRange(-90, 90);
                Validator.For(wishlistItem.LastSeenLocation.Longitude, "Longitude").InRange(-180, 180);
            }
            string path = string.Format("/pii/wishlistitem?wishlistUniqueKey={0}", wishlistUniqueKey);

            using (var response = await Client.PostAsJsonAsync(path, wishlistItem).ConfigureAwait(false))
            {
                return await response.Content.ReadAsAsync<ApiResponse<WishlistItem>>().ConfigureAwait(false);
            }
        }
    }
}
{'fraction_non_alphanumeric': 0.11337209302325581, 'fraction_numerical': 0.010901162790697675, 'mean_word_length': 3.200406917599186, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, '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': '5998404', 'n_tokens_mistral': 1281, 'n_tokens_neox': 1185, 'n_words': 192}