Esempio n. 1
0
        /// <summary>
        /// Executes the activity.
        /// </summary>
        /// <param name="context">The context.</param>
        /// <returns>
        /// A <see cref="BuildVersionDetails"/> instance representing the generated version.
        /// </returns>
        protected override BuildVersionDetails Execute(CodeActivityContext context)
        {
            // Validate required input properties.
            var connectionString = DatabaseConnectionString.Get(context);

            if (string.IsNullOrWhiteSpace(connectionString))
            {
                throw new InvalidOperationException("The DatabaseConnectionString property is required and cannot be null, empty or whitespace.");
            }

            var projectName = ProjectName.Get(context);

            if (string.IsNullOrWhiteSpace(projectName))
            {
                throw new InvalidOperationException("The ProjectName property is required and cannot be null, empty or whitespace.");
            }

            var projectConfigName = ProjectConfigName.Get(context);

            if (string.IsNullOrWhiteSpace(projectConfigName))
            {
                throw new InvalidOperationException("The ProjectConfigName property is required and cannot be null, empty or whitespace.");
            }

            var buildDetail         = context.GetExtension <IBuildDetail>();
            var buildDefinitionName = buildDetail.BuildDefinition.Name;
            var commandLog          = new CodeActivityContextCommandLog(context);
            var lockTimeoutSeconds  = LockTimeoutSeconds.Get(context);
            var requestedBy         = buildDetail.RequestedBy;
            var teamProject         = buildDetail.TeamProject;

            var command =
                new CreateVersionCommand
            {
                BuildDefinitionName = buildDefinitionName,
                CommandLog          = commandLog,
                ConnectionString    = connectionString,
                LockTimeoutSeconds  = lockTimeoutSeconds,
                ProjectConfigName   = projectConfigName,
                ProjectName         = projectName,
                RequestedBy         = requestedBy,
                TeamProjectName     = teamProject
            };

            var versionDetails = command.Execute();

            // Execute optional features.
            SetBuildNumber(context, buildDetail, versionDetails);
            SetDropLocation(context, buildDetail, versionDetails, projectName);

            // Save any changes to the build detail instance.
            buildDetail.Save();

            // Map the IVersionDetails instance to an instance of BuildVersionDetails.
            var buildVersionDetails = BuildVersionDetails.FromIVersionDetails(versionDetails);

            // Return the result.
            return(buildVersionDetails);
        }
Esempio n. 2
0
        protected virtual CreateVersionCommand CreateNewCreateVersionCommand(
			string buildDefinitionName = null,
			string connectionString = null,
			string projectName = null,
			string projectConfigName = null,
			string requestedBy = null,
			string teamProjectName = null
			)
        {
            if (string.IsNullOrWhiteSpace(buildDefinitionName))
                buildDefinitionName = TestBuildDefinitionName;

            if (string.IsNullOrWhiteSpace(connectionString))
                connectionString = GetConfiguredConnectionString();

            if (string.IsNullOrWhiteSpace(projectName))
                projectName = TestProjectName;

            if (string.IsNullOrWhiteSpace(projectConfigName))
                projectConfigName = TestProjectConfigName;

            if (string.IsNullOrWhiteSpace(requestedBy))
                requestedBy = TestRequestedBy;

            if (string.IsNullOrWhiteSpace(teamProjectName))
                teamProjectName = TestTeamProjectName;

            var log = new NullCommandLog();

            var command =
                new CreateVersionCommand
                {
                    BuildDefinitionName = buildDefinitionName,
                    ConnectionString = connectionString,
                    CommandLog = log,
                    ProjectName = projectName,
                    ProjectConfigName = projectConfigName,
                    RequestedBy = requestedBy,
                    TeamProjectName = teamProjectName
                };
            return command;
        }
 public async Task <ActionResult <string> > Create(CreateVersionCommand command)
 {
     return(await Mediator.Send(command));
 }