Ejemplo n.º 1
0
        /// <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));
            }
        }
Ejemplo n.º 2
0
        /// <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;
        }