/// <summary>
        /// Execute checkout module command.
        /// </summary>
        /// <param name="connection">Server connection</param>
        public void Execute(ICommandConnection connection)
        {
            workingDirectory.Clear();

            //connection.SubmitRequest(new CaseRequest());
            connection.SubmitRequest(new ArgumentRequest(this.Module));

            connection.SubmitRequest(new DirectoryRequest(".",
                                                          workingDirectory.CvsRoot.CvsRepository +
                                                          "/" + workingDirectory.ModuleName));

            connection.SubmitRequest(new ExpandModulesRequest());

            connection.SubmitRequest(
                new ArgumentRequest(ArgumentRequest.Options.MODULE_NAME));

            if (null != this.Revision)
            {
                connection.SubmitRequest(new ArgumentRequest(ArgumentRequest.Options.REVISION));
                connection.SubmitRequest(new ArgumentRequest(this.Revision));
            }
            if (this._hasDate)
            {
                connection.SubmitRequest(new ArgumentRequest(ArgumentRequest.Options.DATE));
                connection.SubmitRequest(new ArgumentRequest(this.DateAsString));
            }
            if (null != this.OverrideDirectory)
            {
                connection.SubmitRequest(
                    new ArgumentRequest(ArgumentRequest.Options.OVERRIDE_DIRECTORY));
                connection.SubmitRequest(
                    new ArgumentRequest(this.OverrideDirectory));
            }

            connection.SubmitRequest(new ArgumentRequest(this.Module));

            connection.SubmitRequest(new DirectoryRequest(".",
                                                          workingDirectory.CvsRoot.CvsRepository +
                                                          "/" + this.Module));

            connection.SubmitRequest(new CheckoutRequest());
            Manager manager = new Manager(connection.Repository.WorkingPath);
        }