public override void ExecuteCmdlet()
        {
            if (this.ParameterSetName.Equals(ParameterSetNames.ResourceIdParameterSet, StringComparison.OrdinalIgnoreCase))
            {
                var parsedResourceId = new ResourceIdentifier(this.ResourceId);
                this.ResourceGroupName = parsedResourceId.ResourceGroupName;
                this.AccountName       = parsedResourceId.GetAccountName();
                this.ShareName         = parsedResourceId.GetShareName();
                this.Name = parsedResourceId.GetInvitationName();
            }

            if (this.Name != null)
            {
                try
                {
                    Invitation invitation = this.DataShareManagementClient.Invitations.Get(
                        this.ResourceGroupName,
                        this.AccountName,
                        this.ShareName,
                        this.Name);

                    this.WriteObject(invitation.ToPsObject());
                }
                catch (DataShareErrorException ex) when(ex.Response.StatusCode.Equals(HttpStatusCode.NotFound))
                {
                    throw new PSArgumentException(string.Format(Resources.ResourceNotFoundMessage, this.Name));
                }
            }
            else
            {
                string            nextPageLink   = null;
                List <Invitation> invitationList = new List <Invitation>();

                do
                {
                    IPage <Invitation> invitations = string.IsNullOrEmpty(nextPageLink)
                        ? this.DataShareManagementClient.Invitations.ListByShare(this.ResourceGroupName, this.AccountName, this.ShareName)
                        : this.DataShareManagementClient.Invitations.ListByShareNext(nextPageLink);

                    invitationList.AddRange(invitations.AsEnumerable());
                    nextPageLink = invitations.NextPageLink;
                } while (nextPageLink != null);

                IEnumerable <PSDataShareInvitation> invitationsInShare = invitationList.Select(invitation => invitation.ToPsObject());
                this.WriteObject(invitationsInShare, true);
            }
        }
Esempio n. 2
0
        public override void ExecuteCmdlet()
        {
            string resourceId = null;

            if (this.ParameterSetName.Equals(
                    ParameterSetNames.ResourceIdParameterSet,
                    StringComparison.OrdinalIgnoreCase))
            {
                resourceId = this.ResourceId;
            }

            if (this.ParameterSetName.Equals(ParameterSetNames.ObjectParameterSet, StringComparison.OrdinalIgnoreCase))
            {
                resourceId = this.InputObject.Id;
            }

            if (!string.IsNullOrEmpty(resourceId))
            {
                var parseResourceId = new ResourceIdentifier(resourceId);
                this.ResourceGroupName = parseResourceId.ResourceGroupName;
                this.AccountName       = parseResourceId.GetAccountName();
                this.ShareName         = parseResourceId.GetShareName();
                this.Name = parseResourceId.GetInvitationName();
            }

            this.ConfirmAction(
                string.Format(Resources.ResourceRemovalConfirmation, this.Name),
                this.Name,
                () => this.DataShareManagementClient.Invitations.Delete(
                    this.ResourceGroupName,
                    this.AccountName,
                    this.ShareName,
                    this.Name));

            if (this.PassThru)
            {
                this.WriteObject(true);
            }
        }