/// <inheritdoc/> public IPresenterBuilder UseEventSource(IPresenterEventSource eventSource) { if (_eventSource != null) { throw new InvalidOperationException(); } _eventSource = eventSource ?? throw new ArgumentNullException(nameof(eventSource)); return(this); }
/// <inheritdoc/> public IPresenterBuilder UsePlayerLoop() { if (_eventSource != null) { throw new InvalidOperationException(); } _eventSource = new PlayerLoopEventSource(); return(this); }
internal Presenter(IServiceProvider serviceProvider, IViewFactory viewFactory, IViewControllerFactory controllerFactory, IPresenterEventSource eventSource) { Debug.Assert(serviceProvider != null); Debug.Assert(viewFactory != null); Debug.Assert(controllerFactory != null); _serviceProvider = serviceProvider; _viewFactory = viewFactory; _controllerFactory = controllerFactory; _eventSource = eventSource; _controllers = new ViewControllerCollection(_presentables); _eventSource?.AddPresenter(this); }