public override void ExecuteCmdlet()
        {
            if (ParameterSetName.Equals(InputObjectParameterSet))
            {
                VaultName = InputObject.VaultName.ToString();
            }

            if (ShouldProcess(VaultName, Properties.Resources.AddCertificateContact))
            {
                Contacts existingContacts;

                try
                {
                    existingContacts = this.DataServiceClient.GetCertificateContacts(VaultName);
                }
                catch (KeyVaultErrorException exception)
                {
                    if (exception.Response.StatusCode != System.Net.HttpStatusCode.NotFound)
                    {
                        throw;
                    }

                    existingContacts = null;
                }

                List <Contact> newContactList;

                if (existingContacts == null ||
                    existingContacts.ContactList == null)
                {
                    newContactList = new List <Contact>();
                }
                else
                {
                    newContactList = new List <Contact>(existingContacts.ContactList);
                }

                foreach (var email in EmailAddress)
                {
                    if (newContactList.FindIndex(
                            contact => (string.Compare(contact.EmailAddress, email, StringComparison.OrdinalIgnoreCase) == 0)) == -1)
                    {
                        newContactList.Add(new Contact {
                            EmailAddress = email
                        });
                    }
                }

                var resultantContacts = this.DataServiceClient.SetCertificateContacts(VaultName, new Contacts {
                    ContactList = newContactList
                });

                if (PassThru.IsPresent)
                {
                    this.WriteObject(PSKeyVaultCertificateContact.FromKVCertificateContacts(resultantContacts, VaultName), true);
                }
            }
        }
        public override void ExecuteCmdlet()
        {
            if (ShouldProcess(VaultName, Properties.Resources.RemoveCertificateContact))
            {
                Contacts existingContacts;

                try
                {
                    existingContacts = this.DataServiceClient.GetCertificateContacts(VaultName);
                }
                catch (KeyVaultErrorException exception)
                {
                    if (exception.Response.StatusCode != System.Net.HttpStatusCode.NotFound)
                    {
                        throw;
                    }

                    existingContacts = null;
                }

                List <Contact> existingContactList;

                if (existingContacts == null ||
                    existingContacts.ContactList == null)
                {
                    existingContactList = new List <Contact>();
                }
                else
                {
                    existingContactList = new List <Contact>(existingContacts.ContactList);
                }

                foreach (var email in EmailAddress)
                {
                    existingContactList.RemoveAll(contact => string.Compare(contact.EmailAddress, email, StringComparison.OrdinalIgnoreCase) == 0);
                }

                if (existingContactList.Count == 0)
                {
                    existingContactList = null;
                }

                var resultantContacts = this.DataServiceClient.SetCertificateContacts(VaultName, new Contacts {
                    ContactList = existingContactList
                });

                if (PassThru.IsPresent)
                {
                    this.WriteObject(PSKeyVaultCertificateContact.FromKVCertificateContacts(resultantContacts, VaultName));
                }
            }
        }
        public override void ExecuteCmdlet()
        {
            Contacts contacts;

            if (InputObject != null)
            {
                VaultName = InputObject.VaultName.ToString();
            }
            else if (!string.IsNullOrEmpty(ResourceId))
            {
                var parsedResourceId = new ResourceIdentifier(ResourceId);
                VaultName = parsedResourceId.ResourceName;
            }

            try
            {
                contacts = this.DataServiceClient.GetCertificateContacts(this.VaultName);
            }
            catch (KeyVaultErrorException exception)
            {
                if (exception.Response.StatusCode != System.Net.HttpStatusCode.NotFound)
                {
                    throw;
                }

                contacts = null;
            }

            if (contacts == null ||
                contacts.ContactList == null)
            {
                return;
            }

            var contactsModel = new List <PSKeyVaultCertificateContact>();

            foreach (var contact in contacts.ContactList)
            {
                contactsModel.Add(PSKeyVaultCertificateContact.FromKVCertificateContact(contact, VaultName));
            }

            this.WriteObject(contactsModel, true);
        }