private void btnLoadProjects_Click(object sender, EventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor;

            using (var mantisConnect = new org.mantisbt.www.MantisConnect(txtServerUrl.Text + _currentSettings.WebServicePath))
            {
                ConfigPageEventArgs args = new ConfigPageEventArgs();
                try
                {
                    var projects = mantisConnect.mc_projects_get_user_accessible(txtUser.Text, txtPassword.Text);

                    cbProjects.DataSource    = projects;
                    cbProjects.DisplayMember = "name";
                    args.IsComplete          = true;
                }
                catch (Exception ex)
                {
                    args.IsComplete = false;
                    args.Exception  = ex;
                    MessageBox.Show("Could not get the list of projects: " + ex.Message, "Attention",
                                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
                if (OnPageEvent != null)
                {
                    OnPageEvent(this, args);
                }
            }

            Cursor.Current = Cursors.Default;
        }
        private void DisplayIssues(string filterId, int page)
        {
            lbCurrentAction.Text = "Getting issues...";
            var mantisConnector =
                new org.mantisbt.www.MantisConnect(_settings.RepositoryUri.ToString() + _settings.WebServicePath);

            mantisConnector.mc_project_get_issuesCompleted += (s, e) =>
            {
                try
                {
                    DisplayIssues(page, e.Result, e.Error, e.Cancelled);
                    _currentFilter = filterId;
                }
                catch (Exception)
                {
                    MessageBox.Show("Error obteniendo datos: " + e.Error.Message, "Error");
                }

                mantisConnector.Dispose();
            };

            mantisConnector.mc_filter_get_issuesCompleted += (s, e) =>
            {
                try
                {
                    DisplayIssues(page, e.Result, e.Error, e.Cancelled);
                    _currentFilter = filterId;
                }
                catch (Exception)
                {
                    MessageBox.Show("Error obteniendo datos: " + e.Error.Message, "Error");
                }

                mantisConnector.Dispose();
            };

            if (filterId == "-1")
            {
                mantisConnector.mc_project_get_issuesAsync(_settings.UserName, _settings.Password, _settings.ProjectId.ToString(),
                                                           page.ToString(), _settings.IssuesPerPage.ToString());
            }
            else
            {
                mantisConnector.mc_filter_get_issuesAsync(_settings.UserName, _settings.Password, _settings.ProjectId.ToString(),
                                                          filterId, page.ToString(), _settings.IssuesPerPage.ToString());
            }
        }
示例#3
0
        public override void PostCommit(PostCommitArgs args)
        {
            if (_settings.AddNoteAfterCommit && _control.SelectedIssues.Any())
            {
                using (var service = new org.mantisbt.www.MantisConnect(_settings.RepositoryUri.ToString() + _settings.WebServicePath))
                {
                    foreach (var issue in _control.SelectedIssues)
                    {
                        service.mc_issue_note_add(_settings.UserName, _settings.Password, issue.id,
                                                  new org.mantisbt.www.IssueNoteData()
                                                      {
                                                          text = string.Format(_settings.AssociatedCommitNoteText, args.Revision, args.CommitMessage)
                                                      });
                    }
                }

            }

            base.PostCommit(args);
        }
        public void LoadData2(Uri repositoryUri, IDictionary <string, object> properties)
        {
            using (var mantisConnector = new org.mantisbt.www.MantisConnect(repositoryUri.ToString() + _settings.WebServicePath))
            {
                // Would prefer to get issue headers and cached versions of the users, priorities, etc.
                // However, there are documented issues when there are a lot of registered users.
                var issueHeaders = mantisConnector.mc_project_get_issue_headers(_settings.UserName, _settings.Password, _settings.ProjectId.ToString(), "1", "100");
                var filters      = mantisConnector.mc_filter_get(_settings.UserName, _settings.Password, _settings.ProjectId.ToString());
                var users        = mantisConnector.mc_project_get_users(_settings.UserName, _settings.Password, _settings.ProjectId.ToString(), "10").
                                   ToDictionary(x => x.id, x => x);

                /*                lvIssues.BeginUpdate();
                 *              for (int i = 0, count = issueHeaders.Length; i < count; i++)
                 *              {
                 *                  var issueHeader = issueHeaders[i];
                 *                  var item = new ListViewItem(new[] {issueHeader.priority, issueHeader.id, issueHeader.category,
                 *                      issueHeader.summary, issueHeader.status + "(" + users[issueHeader.handler].name + ")", users[issueHeader.reporter].name, issueHeader.last_updated.ToString()});
                 *                  lvIssues.Items.Add(item);
                 *              }
                 *              lvIssues.EndUpdate();*/
            }
        }
        public void LoadData(ConnectorSettings settings)
        {
            _settings = settings;

            if (_settings.LocalAccount)
            {
                var settingsManager = new ConnectorSettingsManager();
                settingsManager.LoadLocalUserSettings(_settings);
            }

            InitializeStatusColorMapping();

            var mantisConnector =
                new org.mantisbt.www.MantisConnect(settings.RepositoryUri.ToString() + _settings.WebServicePath);

            mantisConnector.mc_filter_getCompleted += (s, e) =>
            {
                var filters    = e.Result;
                var filterData = new org.mantisbt.www.FilterData()
                {
                    name = "[No filter]", id = "-1"
                };
                Array.Reverse(filters);
                Array.Resize(ref filters, filters.Length + 1);
                Array.Reverse(filters);
                filters[0] = filterData;
                tscbFilter.ComboBox.DataSource    = filters;
                tscbFilter.ComboBox.DisplayMember = "name";

                mantisConnector.Dispose();
            };

            lbCurrentAction.Text = "Getting filters...";

            mantisConnector.mc_filter_getAsync(settings.UserName, settings.Password, settings.ProjectId.ToString());
        }