/// <summary> /// Validates the construction arguments required for opening a project file. /// </summary> /// <param name="requiredOpenProjectProperties">The construction arguments to be validated.</param> /// <exception cref="ArgumentException">Thrown when any construction property of /// <paramref name="requiredOpenProjectProperties"/> is invalid.</exception> private static void ValidateOpenProjectProperties(OpenProjectConstructionProperties requiredOpenProjectProperties) { if (requiredOpenProjectProperties.FilePath == null) { throw new ArgumentException(@"Filepath should be set.", nameof(requiredOpenProjectProperties)); } if (requiredOpenProjectProperties.ProjectOwner == null) { throw new ArgumentException(@"Project owner should be set.", nameof(requiredOpenProjectProperties)); } if (requiredOpenProjectProperties.ProjectFactory == null) { throw new ArgumentException(@"Project factory should be set.", nameof(requiredOpenProjectProperties)); } if (requiredOpenProjectProperties.ProjectStorage == null) { throw new ArgumentException(@"Project storage should be set.", nameof(requiredOpenProjectProperties)); } }
/// <summary> /// Creates a new instance of <see cref="OpenProjectActivity"/>. /// </summary> /// <param name="requiredOpenProjectProperties">All mandatory properties for being /// able to open a project.</param> /// <param name="optionalProjectMigrationProperties">Optional: Properties for migrating /// the project to the current version.</param> /// <exception cref="ArgumentNullException">Thrown when <paramref name="requiredOpenProjectProperties"/> /// is <c>null</c>.</exception> /// <exception cref="ArgumentException">Thrown when any input argument has invalid values.</exception> public OpenProjectActivity(OpenProjectConstructionProperties requiredOpenProjectProperties, ProjectMigrationConstructionProperties optionalProjectMigrationProperties = null) { if (requiredOpenProjectProperties == null) { throw new ArgumentNullException(nameof(requiredOpenProjectProperties)); } ValidateOpenProjectProperties(requiredOpenProjectProperties); if (optionalProjectMigrationProperties != null) { ValidateProjectMigrationProperties(optionalProjectMigrationProperties); migratedProjectFilePath = optionalProjectMigrationProperties.MigrationFilePath; migrator = optionalProjectMigrationProperties.Migrator; totalNumberOfSteps = 3; } filePath = requiredOpenProjectProperties.FilePath; projectOwner = requiredOpenProjectProperties.ProjectOwner; storage = requiredOpenProjectProperties.ProjectStorage; Description = Resources.OpenProjectActivity_Open_project; }