Esempio n. 1
0
        /// <summary>
        /// Updates the existing list of targets with the new target if it doesn't already exist in the list.
        /// </summary>
        /// <param name="existingTargets">The list of existing targets in the target group</param>
        /// <returns>An updated list of targets.</returns>
        protected override IEnumerable <AzureSqlElasticJobTargetModel> ApplyUserInputToModel(IEnumerable <AzureSqlElasticJobTargetModel> existingTargets)
        {
            // Reformat target credential id
            foreach (AzureSqlElasticJobTargetModel target in existingTargets)
            {
                target.RefreshCredentialName = CreateCredentialId(target.ResourceGroupName, target.ServerName, target.AgentName, target.RefreshCredentialName);
            }

            this.Target = new AzureSqlElasticJobTargetModel
            {
                TargetGroupName = this.TargetGroupName,
                MembershipType  = MyInvocation.BoundParameters.ContainsKey("Exclude") ?
                                  JobTargetGroupMembershipType.Exclude :
                                  JobTargetGroupMembershipType.Include,
                TargetType            = GetTargetType(),
                TargetServerName      = this.ServerName,
                TargetDatabaseName    = this.DatabaseName,
                TargetElasticPoolName = this.ElasticPoolName,
                TargetShardMapName    = this.ShardMapName,
                RefreshCredentialName = this.RefreshCredentialName != null?
                                        CreateCredentialId(this.ResourceGroupName, this.AgentServerName, this.AgentName, this.RefreshCredentialName) : null,
            };

            this.ExistingTargets = existingTargets.ToList();
            this.NeedsUpdate     = UpdateExistingTargets();

            // If we don't need to send an update, send back an empty list.
            if (!this.NeedsUpdate)
            {
                return(new List <AzureSqlElasticJobTargetModel>());
            }

            return(this.ExistingTargets);
        }
Esempio n. 2
0
 /// <summary>
 /// Converts an AzureSqlElasticJobTargetModel to a JobTarget model
 /// </summary>
 /// <param name="target">The AzureSqlElasticJobTargetModel</param>
 /// <returns>The JobTarget model</returns>
 public JobTarget CreateJobTargetModel(AzureSqlElasticJobTargetModel target)
 {
     return(new JobTarget
     {
         MembershipType = target.MembershipType,
         DatabaseName = target.TargetDatabaseName,
         ServerName = target.TargetServerName,
         ElasticPoolName = target.TargetElasticPoolName,
         RefreshCredential = target.RefreshCredentialName,
         ShardMapName = target.TargetShardMapName,
         Type = target.TargetType
     });
 }
Esempio n. 3
0
        /// <summary>
        /// Does a scan over the list of targets and finds the target's index in the list
        /// </summary>
        protected int?FindTarget()
        {
            for (int i = 0; i < this.ExistingTargets.Count; i++)
            {
                AzureSqlElasticJobTargetModel t = this.ExistingTargets[i];

                if (t.TargetServerName == this.Target.TargetServerName &&
                    t.TargetDatabaseName == this.Target.TargetDatabaseName &&
                    t.TargetElasticPoolName == this.Target.TargetElasticPoolName &&
                    t.TargetShardMapName == this.Target.TargetShardMapName &&
                    t.TargetType == this.Target.TargetType &&
                    t.RefreshCredentialName == this.Target.RefreshCredentialName)
                {
                    return(i);
                }
            }

            return(null);
        }