/// <summary> /// Initializes a new instance of the <see cref="BuildNotificationViewModel" /> class. /// </summary> /// <param name="application">The application.</param> /// <param name="buildViewModelFactory">The build view model factory.</param> /// <param name="project">The project.</param> /// <param name="build">The build.</param> public BuildNotificationViewModel(IApp application, IBuildViewModelFactory buildViewModelFactory, IProject project, IBuild build) { Ensure.That(application).IsNotNull(); Ensure.That(buildViewModelFactory).IsNotNull(); Ensure.That(project).IsNotNull(); Ensure.That(build).IsNotNull(); _application = application; Build = buildViewModelFactory.Create(project.Name, build.Id, build.Branch, build.VersionNumber(), build.RequestedBy, build.Changes, build.Status, build.StartTime, build.EndTime, build.RunTime(), build.WebUrl); StartClosing(); }
/// <summary> /// Initializes a new instance of the <see cref="ProjectViewModel" /> class. /// </summary> /// <param name="application">The application.</param> /// <param name="platformProvider">The platform provider.</param> /// <param name="eventAggregator">The event aggregator.</param> /// <param name="buildTracker">The build tracker.</param> /// <param name="buildFactory">The build factory.</param> /// <param name="settingsId">The settings identifier.</param> /// <param name="projectId">The project identifier.</param> /// <param name="projectName">The project name.</param> public ProjectViewModel( IApp application, IPlatformProvider platformProvider, IEventAggregator eventAggregator, IBuildTracker buildTracker, IBuildViewModelFactory buildFactory, Guid settingsId, string projectId, string projectName) : base(platformProvider) { Ensure.That(application).IsNotNull(); Ensure.That(eventAggregator).IsNotNull(); Ensure.That(buildTracker).IsNotNull(); Ensure.That(buildFactory).IsNotNull(); Ensure.That(settingsId).IsNotEmpty(); Ensure.That(projectId).IsNotNullOrWhiteSpace(); _application = application; _eventAggregator = eventAggregator; _buildFactory = buildFactory; _settingsId = settingsId; Id = projectId; _name = projectName; _isBusy = true; _isErrored = false; DisplayName = Properties.Resources.Project_View; WeakEventManager <IBuildTracker, BuildTrackerProjectErrorEventArgs> .AddHandler(buildTracker, nameof(buildTracker.ProjectError), BuildTrackerProjectError); WeakEventManager <IBuildTracker, BuildTrackerProjectProgressEventArgs> .AddHandler(buildTracker, nameof(buildTracker.ProjectProgressChanged), BuildTrackerProjectProgressChanged); _builds = new BindableCollection <IBuildViewModel>(); _orderedBuilds = new CollectionViewSource { Source = _builds }; OrderedBuilds = _orderedBuilds.View; }