本文整理汇总了C#中IProvider.CanHandleIssueUpdates方法的典型用法代码示例。如果您正苦于以下问题:C# IProvider.CanHandleIssueUpdates方法的具体用法?C# IProvider.CanHandleIssueUpdates怎么用?C# IProvider.CanHandleIssueUpdates使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IProvider
的用法示例。
在下文中一共展示了IProvider.CanHandleIssueUpdates方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OnCommitFinished
private static void OnCommitFinished(IWin32Window parentWindow, string revision, IProvider project, ICollection<Issue> issues)
{
if (project == null)
return;
if (issues == null || issues.Count == 0)
return;
if (!project.CanHandleIssueUpdates())
return;
var settings = Properties.Settings.Default;
var updates = issues.Select(e => new IssueUpdate(e)
{
Status = project.ClosedStatuses.FirstOrDefault(),
Comment = string.Format("{0} in rev. {1}.", GetIssueTypeAddress(e.Type), revision)
})
.ToList();
while (updates.Count > 0)
{
using (var dialog = new IssueUpdateDialog(project)
{
Issues = updates,
Revision = revision
})
{
new WindowSettings(settings, dialog);
if (DialogResult.OK != dialog.ShowDialog(parentWindow))
return;
}
if (updates.Count == 0)
break;
var credential = CredentialPrompt.Prompt(parentWindow, project.Name, project.Name + "-" + FilenameUtils.EscapeFilename(project.ProjectName) + ".gccred");
if (credential == null)
continue;
using (var form = new WorkProgressForm
{
Text = "Updating Issues",
StartWorkOnShow = true,
})
{
var worker = form.Worker;
worker.DoWork += (sender, args) =>
{
var startCount = updates.Count;
while (updates.Count > 0)
{
if (worker.CancellationPending)
{
args.Cancel = true;
break;
}
var issue = updates[0];
form.ReportProgress(string.Format(
@"Updating issue #{0}: {1}",
issue.Issue.Id,
issue.Issue.Summary));
UpdateIssue(project, issue, credential, form.ReportDetailLine);
updates.RemoveAt(0);
form.ReportProgress((int)((startCount - updates.Count) * 100.0 / startCount));
}
};
form.WorkFailed += delegate
{
var error = form.Error;
foreach (var line in new StringReader(error.ToString()).ReadLines())
form.ReportDetailLine(line);
ShowErrorBox(form, error);
};
if (parentWindow == null)
form.StartPosition = FormStartPosition.CenterScreen;
form.ShowDialog(parentWindow);
}
}
settings.Save();
}