示例#1
0
        /// <summary> Releases any locked resources </summary>
        public void Dispose()
        {
            if (_issues != null)
            {
                _issues.Dispose();
            }
            _issues = null;

            if (_service != null)
            {
                _service.Dispose();
            }
            _service = null;
        }
示例#2
0
        /// <summary>
        /// Prompt the user for the comments and related issues
        /// </summary>
        public string GetCommitMsg(IntPtr hParentWnd, string parameters, string originalMessage, string commonRoot,
                                   string[] files)
        {
            Log.Verbose("Loading form...");
            DateTime time = DateTime.Now;

            try
            {
                if (!Logon(hParentWnd, parameters, commonRoot))
                {
                    return(originalMessage);
                }

                if (_issues == null)
                {
                    _issues = new IssuesListView(_service, originalMessage);
                }
                else
                {
                    _issues.SyncComments(originalMessage);
                }

                Log.Verbose("Opening form");
                Log.Info("Time required to connect: {0}", DateTime.Now - time);
                var form = new IssuesList(_issues);
                form.ShowInTaskbar = hParentWnd == IntPtr.Zero;

                Log.Info("Time required to open form: {0}", DateTime.Now - time);
                if (form.ShowDialog(Win32Window.FromHandle(hParentWnd)) != DialogResult.OK)
                {
                    _cancelled = true;
                    return(originalMessage);
                }

                _cancelled = false;
                return(_issues.GetFullComments());
            }
            catch (OperationCanceledException)
            {
                _cancelled = true;
                return(originalMessage);
            }
            catch (Exception ex)
            {
                ShowError(hParentWnd, ex.Message, ex.GetType().FullName);
                throw;
            }
        }
示例#3
0
        /// <summary>
        /// Prompt the user for the comments and related issues
        /// </summary>
        public string GetCommitMsg(IntPtr hParentWnd, string rootUrl, string originalMessage, string commonRoot, string[] files)
        {
            string message = originalMessage;

            try
            {
                if (!Logon(hParentWnd, rootUrl, commonRoot))
                {
                    return(originalMessage);
                }

                if (_issues == null)
                {
                    _issues = new IssuesListView(_service, originalMessage, files);
                }
                else
                {
                    _issues.SyncComments(originalMessage);
                }

                IssuesList form = new IssuesList(_issues);
                if (hParentWnd == IntPtr.Zero)
                {
                    form.ShowInTaskbar = true;
                }

                if (form.ShowDialog(Win32Window.FromHandle(hParentWnd)) != DialogResult.OK)
                {
                    _cancelled = true; return(originalMessage);
                }

                _cancelled = false;
                return(_issues.GetFullComments());
            }
            catch (OperationCanceledException) { _cancelled = true; return(originalMessage); }
            catch (Exception ex)
            {
                ShowError(hParentWnd, ex.Message, ex.GetType().FullName);
                throw;
            }
        }
        public void Dispose()
        {
            if (_issueListView != null && !_issueListView.IsDisposed && !_issueListView.Disposing)
            {
                _issueListView.Dispose();
            }

            _issueListView = null;

            if (_getWorkItemService != null)
            {
                if (_getWorkItemService.Result != null)
                {
                    _getWorkItemService.Result.Dispose();
                }

                _getWorkItemService.Wait(200);
                _getWorkItemService.Dispose();
                _getWorkItemService = null;
            }
        }