public int FileWorkItem() { this.preservedDialog = (RegisterItemDialog)null; int workItemId = TrackedItemFiler.InvalidWorkItemId; if (this.issueTrackingProvider == null) { return(workItemId); } this.itemTypes = this.issueTrackingProvider.GetItemTypes(this.currentProject); if (this.itemTypes == null) { return(-1); } while (this.state != TrackedItemFiler.PromptState.Quit) { switch (this.state) { case TrackedItemFiler.PromptState.GetTemplate: this.state = this.AttemptToDetermineDefaultTemplate() ? TrackedItemFiler.PromptState.ShowRegistrationForm : TrackedItemFiler.PromptState.GetTemplateDialog; continue; case TrackedItemFiler.PromptState.GetTemplateDialog: this.DetermineItemType(); this.state = this.FilteredItemTypes.Count == 0 ? TrackedItemFiler.PromptState.TemplatesNotFoundDialog : (this.activeType == null ? TrackedItemFiler.PromptState.Quit : TrackedItemFiler.PromptState.ShowRegistrationForm); continue; case TrackedItemFiler.PromptState.TemplatesNotFoundDialog: this.state = TrackedItemFiler.PromptState.Quit; this.MessageDisplayService.ShowError(StringTable.WorkItemTemplateNotFound); continue; case TrackedItemFiler.PromptState.ShowRegistrationForm: workItemId = this.RegisterWorkItem(); this.state = this.cancelOperation ? TrackedItemFiler.PromptState.Quit : (workItemId == TrackedItemFiler.InvalidWorkItemId ? TrackedItemFiler.PromptState.ShowFailureDialog : TrackedItemFiler.PromptState.ShowSuccessDialog); continue; case TrackedItemFiler.PromptState.ShowSuccessDialog: int num = (int)this.MessageDisplayService.ShowMessage(new MessageBoxArgs() { AutomationId = "WorkItemSuccess", Message = this.GetSuccessMessage(workItemId), Button = MessageBoxButton.OK, HyperlinkUri = this.viewableUri, HyperlinkMessage = StringTable.WorkItemHyperlink, Image = MessageBoxImage.Asterisk }); this.state = TrackedItemFiler.PromptState.Quit; continue; case TrackedItemFiler.PromptState.ShowFailureDialog: this.state = TrackedItemFiler.PromptState.ShowRegistrationForm; continue; default: continue; } } return(workItemId); }
private int RegisterWorkItem() { RegisterItemDialog registerItemDialog = new RegisterItemDialog(this.services, this.activeType, (IList <ITrackedItemType>) this.filteredItemTypes, this.defaultTitle, this.defaultDescription, this.defaultFileAttachments); if (this.preservedDialog != null && this.preservedDialog.Item.ItemType == this.activeType) { registerItemDialog.Item = this.preservedDialog.Item; } this.preservedDialog = registerItemDialog; bool?nullable = registerItemDialog.ShowDialog(); if ((nullable.HasValue ? (nullable.GetValueOrDefault() ? true : false) : 0) != 0) { if (this.issueTrackingProvider.SaveWorkItem(registerItemDialog.RegistrationForm)) { int itemId = registerItemDialog.RegistrationForm.ItemId; if (itemId > TrackedItemFiler.InvalidWorkItemId) { this.viewableUri = registerItemDialog.RegistrationForm.TrackedItem.ViewableUri; return(itemId); } } } else { this.cancelOperation = true; } return(TrackedItemFiler.InvalidWorkItemId); }