public AddLicenseKeysForProductResult AddLicenseKeysForLicenseSet(string url, string token, EncryptionInfo encryptionInfo, KeyPair serviceKeys, AddLicenseKeysForProductData data) { ProductsServiceClient client = ProductClientCreator(url); string encryptedToken = _symmetricEncryptionProvider.Encrypt(token, encryptionInfo); string serializedPayload = _objectSerializationProvider.Serialize(data); string encryptedData = _asymmetricEncryptionProvider.EncryptPrivate(serializedPayload, serviceKeys); string encryptedResult = client.AddLicenseKeysForProduct(encryptedToken, encryptedData); string decryptedResult = _asymmetricEncryptionProvider.DecryptPublic(encryptedResult, serviceKeys); AddLicenseKeysForProductResult result = _objectSerializationProvider.Deserialize <AddLicenseKeysForProductResult>(decryptedResult); return(result); }