@@ -42,6 +42,8 @@ int main(int argc, char* argv[]) {
4242 std::string licenseeNumber = " L" +randomNumber;
4343 std::string licenseNumber = " LC" +randomNumber;
4444 std::string licenseeName = " Licensee " +randomNumber;
45+ std::string bundleNumber = " B" +randomNumber;
46+ std::string bundleName = " Bundle " +randomNumber;
4547
4648 std::cout << " Hello, this is NetLicensing demo client\n " ;
4749 std::cout << " Product endpoint " << endpoint<Product>() << std::endl;
@@ -454,6 +456,89 @@ int main(int argc, char* argv[]) {
454456
455457 // endregion
456458
459+ // region ********* Bundle
460+ std::list<String_t> licenseTemplateNumbers;
461+ licenseTemplateNumbers.push_back (licenseTemplateNumber);
462+
463+ Bundle newBundle;
464+ newBundle.setNumber (bundleNumber);
465+ newBundle.setName (bundleName);
466+ newBundle.setDescription (" Demo bundle" );
467+ newBundle.setLicenseTemplateNumbers (licenseTemplateNumbers);
468+ newBundle.setPrice (FixedPoint (" 12.50" ));
469+ newBundle.setCurrency (Currency::EUR );
470+ newBundle.addProperty (" CustomKey" , " CustomValue" );
471+
472+ Bundle bundle = BundleService::create (ctx, newBundle);
473+ std::cout << " Added bundle: " << bundle.getName ().toString () << std::endl;
474+
475+ bundle = BundleService::get (ctx, bundleNumber);
476+ std::string bundleString (bundle.toString ());
477+ std::cout << " Got bundle: " << bundleString << std::endl;
478+
479+ std::list<Bundle> bundles = BundleService::list (ctx, " " );
480+ if (bundles.size ()) {
481+ std::cout << " Got the following bundles: " << std::endl;
482+ for (auto const & i : bundles) {
483+ std::cout << i.toString () << std::endl;
484+ }
485+ }
486+
487+ std::string bProductModuleNumber = " BP" + randomNumber;
488+ ProductModule bProductModule;
489+ bProductModule.setNumber (bProductModuleNumber);
490+ bProductModule.setName (" Demo product module" );
491+ bProductModule.setLicensingModel (LICENSING_MODEL_SUBSCRIPTION_NAME );
492+ bProductModule.setProductNumber (productNumber);
493+
494+ std::string bLicenseTemplateNumber = " BLT" + randomNumber;
495+ LicenseTemplate bLicenseTemplate;
496+ bLicenseTemplate.setNumber (bLicenseTemplateNumber);
497+ bLicenseTemplate.setName (" Template for Bundle" );
498+ bLicenseTemplate.setLicenseType (LicenseTypeEnum::TIMEVOLUME );
499+ bLicenseTemplate.addProperty (" timeVolume" , " 3" );
500+ bLicenseTemplate.setPrice (FixedPoint (" 5.00" ));
501+ bLicenseTemplate.setCurrency (Currency::EUR );
502+ bLicenseTemplate.setAutomatic (false );
503+ bLicenseTemplate.setHidden (false );
504+ bLicenseTemplate.setProductModuleNumber (bProductModuleNumber);
505+
506+ bProductModule = ProductModuleService::create (ctx, bProductModule);
507+ bLicenseTemplate = LicenseTemplateService::create (ctx, bLicenseTemplate);
508+
509+ bundle.addLicenseTemplateNumber (bLicenseTemplateNumber);
510+ bundle.addLicenseTemplateNumber (bLicenseTemplateNumber);
511+ bundle.addLicenseTemplateNumber (bLicenseTemplateNumber);
512+
513+ bundle.setName (" Updated name" );
514+ bundle = BundleService::update (ctx, bundleNumber, bundle);
515+ bundleString = newLicenseTemplate.toString ();
516+ std::cout << " Updated bundle: " << bundleString << std::endl;
517+
518+ std::list<License> obtainedLicenses = BundleService::obtain (ctx, bundleNumber, licenseeNumber, " " );
519+ std::cout << " Obtained licenses: " << std::endl;
520+ for (auto const & i : obtainedLicenses) {
521+ std::cout << i.toString () << std::endl;
522+ }
523+
524+ // bundle shop token
525+ Token bundleShopToken;
526+ bundleShopToken.setTokenType (TokenType::SHOP );
527+ bundleShopToken.addProperty (LICENSEE_NUMBER , licenseeNumber);
528+ bundleShopToken.addProperty (BUNDLE_NUMBER , bundleNumber);
529+
530+ bundleShopToken = TokenService::create (ctx, bundleShopToken);
531+ std::string bundleShopTokenString = bundleShopToken.toString ();
532+ std::cout << " Bundle shop token: " << bundleShopTokenString << std::endl;
533+
534+ // cleanup
535+ LicenseTemplateService::del (ctx, bLicenseTemplateNumber, true );
536+ ProductModuleService::del (ctx, bProductModuleNumber, true );
537+ BundleService::del (ctx, bundleNumber, true );
538+ std::cout << " Deleted bundle!" << std::endl;
539+
540+ // endregion
541+
457542 std::cout << " All done." << std::endl;
458543
459544 cleanUp (ctx, productNumber, true );
0 commit comments