Пример #1
0
        private bool PreCommit_VerifyIssueTracker(PendingCommitState state)
        {
            IssueRepository iRepo = IssueService.CurrentIssueRepository;

            if (iRepo != null)
            {
                List <Uri> uris = new List <Uri>();
                foreach (PendingChange pc in state.Changes)
                {
                    uris.Add(pc.Uri);
                }
                PreCommitArgs args = new PreCommitArgs(uris.ToArray(), 1);
                args.CommitMessage = state.LogMessage;
                args.IssueText     = state.IssueText;

                iRepo.PreCommit(args);
                if (args.Cancel)
                {
                    return(false);
                }

                state.LogMessage = args.CommitMessage;
                // BA: It is IssueRepository's responsibility to reset IssueText value to
                // 1) null : if IssueRepository populated log message with the issue numbers,
                // 2) other: if the default AnkhSVN handling is desired (i.e. BugTraq settings).
                // if the value is set to null, it is probably good idea to set SkipIssueVerify to true
                state.IssueText = args.IssueText;

                if (args.SkipIssueVerify)
                {
                    state.SkipIssueVerify = true;
                }

                foreach (KeyValuePair <string, string> kv in args.CustomProperties)
                {
                    state.CustomProperties[kv.Key] = kv.Value;
                }
            }
            return(true);
        }