/// <summary>
        /// Show the rename file dialog.
        /// </summary>
        /// <param name="repository">
        /// The <see cref="Repository"/> to rename files in.
        /// </param>
        /// <param name="command">
        /// Any extra options to the rename method, or <c>null</c> for default options.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// <para><paramref name="repository"/> is <c>null</c>.</para>
        /// </exception>
        public static void RenameGui(this Repository repository, RenameGuiCommand command = null)
        {
            if (repository == null)
                throw new ArgumentNullException("repository");

            command = command ?? new RenameGuiCommand();

            repository.Execute(command);
        }
        /// <summary>
        /// Show the rename file dialog.
        /// </summary>
        /// <param name="repository">
        /// The <see cref="Repository"/> to rename files in.
        /// </param>
        /// <param name="source">
        /// The source file to rename.
        /// </param>
        /// <param name="destination">
        /// The destination to rename it to.
        /// </param>
        /// <param name="command">
        /// Any extra options to the rename method, or <c>null</c> for default options.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// <para><paramref name="repository"/> is <c>null</c>.</para>
        /// <para>- or -</para>
        /// <para><paramref name="source"/> is <c>null</c> or empty.</para>
        /// <para>- or -</para>
        /// <para><paramref name="destination"/> is <c>null</c> or empty.</para>
        /// </exception>
        /// <exception cref="ArgumentException">
        /// <para><see cref="MoveCopyRenameGuiCommandBase{T}.Source"/> cannot be set before calling this method.</para>
        /// <para>- or -</para>
        /// <para><see cref="MoveCopyRenameGuiCommandBase{T}.Destination"/> cannot be set before calling this method.</para>
        /// </exception>
        public static void RenameGui(this Repository repository, string source, string destination, RenameGuiCommand command = null)
        {
            if (repository == null)
                throw new ArgumentNullException("repository");
            if (StringEx.IsNullOrWhiteSpace(source))
                throw new ArgumentNullException("source");
            if (StringEx.IsNullOrWhiteSpace(destination))
                throw new ArgumentNullException("destination");

            command = (command ?? new RenameGuiCommand())
                .WithSource(source)
                .WithDestination(destination);

            repository.Execute(command);
        }