public IWindow ResolveWindow()
		{
			IProductChannelFactory channelFactory =
				new ProductChannelFactory();
			IClientContractMapper mapper =
				new ClientContractMapper();
			IProductManagementAgent wcfAgent =
				new WcfProductManagementAgent(
					channelFactory, mapper);

			var timeout = TimeSpan.FromMinutes(1);
			ICircuitBreaker breaker = new CircuitBreaker(timeout);
			IProductManagementAgent circuitBreakerAgent =
				new CircuitBreakerProductManagementAgent(wcfAgent, breaker);

			IProductManagementAgent errorHandlingAgent =
				new ErrorHandlingProductManagementAgent(
					circuitBreakerAgent);

			IMainWindowViewModelFactory vmFactory =
				new MainWindowViewModelFactory(
					errorHandlingAgent);

			Window mainWindow = new MainWindow();
			IWindow w =
				new MainWindowAdapter(mainWindow, vmFactory);
			return w;
		}
        public IWindow ResolveWindow()
        {
            IProductChannelFactory channelFactory =
                new ProductChannelFactory();
            IClientContractMapper mapper =
                new ClientContractMapper();
            IProductManagementAgent agent = 
                new WcfProductManagementAgent(
                    channelFactory, mapper);

            IMainWindowViewModelFactory vmFactory = 
                new MainWindowViewModelFactory(agent);

            Window mainWindow = new MainWindow();
            IWindow w = 
                new MainWindowAdapter(mainWindow, vmFactory);
            return w;
        }