protected override async Task ManageRepositoryAsync(IDeleteContactCommand command, IRefreshableToken token)
        {
            NullGuard.NotNull(command, nameof(command))
            .NotNull(token, nameof(token));

            string externalIdentifier = command.ExternalIdentifier;

            if (string.IsNullOrWhiteSpace(externalIdentifier))
            {
                return;
            }

            IContact existingContact = await command.GetExistingContactAsync(MicrosoftGraphRepository, ContactRepository);

            if (existingContact == null)
            {
                return;
            }

            string existingExternalIdentifier = existingContact.ExternalIdentifier;

            if (string.IsNullOrWhiteSpace(existingExternalIdentifier))
            {
                return;
            }

            await ContactRepository.DeleteContactSupplementAsync(existingContact);

            await MicrosoftGraphRepository.DeleteContactAsync(token, existingExternalIdentifier);
        }