public RecurringOrderTemplateViewModelFactory(
     IOvertureClient overtureClient,
     ILocalizationProvider localizationProvider,
     IViewModelMapper viewModelMapper,
     ICountryService countryService,
     IComposerContext composerContext,
     IRecurringOrdersRepository recurringOrdersRepository,
     IAddressRepository addressRepository,
     IProductUrlProvider productUrlProvider,
     IProductPriceViewService productPriceViewService,
     IRecurringScheduleUrlProvider recurringScheduleUrlProvider,
     IRecurringOrderProgramViewModelFactory recurringOrderProgramViewModelFactory,
     IRecurringOrdersRepository recurringOrderRepository)
 {
     LocalizationProvider                  = localizationProvider ?? throw new ArgumentNullException(nameof(localizationProvider));
     ViewModelMapper                       = viewModelMapper ?? throw new ArgumentNullException(nameof(viewModelMapper));
     CountryService                        = countryService ?? throw new ArgumentNullException(nameof(countryService));
     ComposerContext                       = composerContext;
     RecurringOrdersRepository             = recurringOrdersRepository ?? throw new ArgumentNullException(nameof(recurringOrdersRepository));
     AddressRepository                     = addressRepository ?? throw new ArgumentNullException(nameof(addressRepository));
     ProductUrlProvider                    = productUrlProvider ?? throw new ArgumentNullException(nameof(productUrlProvider));
     ProductPriceViewService               = productPriceViewService ?? throw new ArgumentNullException(nameof(productPriceViewService));
     OvertureClient                        = overtureClient ?? throw new ArgumentNullException(nameof(overtureClient));
     RecurringScheduleUrlProvider          = recurringScheduleUrlProvider ?? throw new ArgumentNullException(nameof(recurringScheduleUrlProvider));
     RecurringOrderProgramViewModelFactory = recurringOrderProgramViewModelFactory ?? throw new ArgumentNullException(nameof(recurringOrderProgramViewModelFactory));
     RecurringOrderRepository              = recurringOrderRepository ?? throw new ArgumentNullException(nameof(recurringOrderRepository));
 }
 public ProductController(
     IProductPriceViewService productPriceViewService,
     IComposerContext composerContext,
     IProductViewService productViewService,
     IRelatedProductViewService relatedProductViewService)
 {
     ProductPriceViewService   = productPriceViewService ?? throw new ArgumentNullException(nameof(productPriceViewService));
     ComposerContext           = composerContext ?? throw new ArgumentNullException(nameof(composerContext));
     ProductViewService        = productViewService ?? throw new ArgumentNullException(nameof(productViewService));
     RelatedProductViewService = relatedProductViewService ?? throw new ArgumentNullException(nameof(relatedProductViewService));
 }