Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }