private bool checkConnection()
        {
            String login = tbLogin.Text;
            String password = tbPassword.Text;
            String jiraUrl = tbJiraUrl.Text;
            PreferencesForm.ActiveForm.Cursor = Cursors.WaitCursor;

            try
            {
                JiraRequest req = new JiraRequest(jiraUrl, login, password);
                String res = req.create("mypermissions"/*"search?jql=filter=-2"*/).getResponse();

                return true;
            }
            catch (Exception e)
            {
                MessageBox.Show("Connection error: " + e.Message, "",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error);

                return false;
            }
            finally
            {
                PreferencesForm.ActiveForm.Cursor = Cursors.Arrow;
            }
        }
        private void btnStop_Click(object sender, EventArgs e)
        {
            if (!isTimerControlsEnabled || !timer.isRunning)
            {
                return;
            }

            timer.pause();

            try
            {
                TimeSpan t       = TimeSpan.FromSeconds(timer.secondsPassed);
                string   worklog = JsonConvert.SerializeObject(new JiraIssueWorkLog {
                    timeSpentSeconds = timer.secondsPassed,
                    //timeSpent = t.Hours + "h " + t.Minutes + "m",
                    started = new DateTimeOffset(DateTime.UtcNow).Subtract(t).ToString("yyyy-MM-ddTHH:mm:ss.fff+0000")
                }, Formatting.Indented);
                Console.WriteLine(worklog);

                JiraRequest req = new JiraRequest();
                req.create("issue/" + currentIssue.ID.ToString() + "/worklog", worklog);
                Console.WriteLine(req.getResponse());

                btnStartPause.Image = global::JiraSimpleTimeTracker.Properties.Resources.Play_32;
                timer.stop();
                lbTimer.Text = "00:00:00";
            }
            catch (Exception ex)
            {
                btnStartPause.Image = global::JiraSimpleTimeTracker.Properties.Resources.Pause_32;
            }
        }
Example #3
0
        private bool checkConnection()
        {
            String login    = tbLogin.Text;
            String password = tbPassword.Text;
            String jiraUrl  = tbJiraUrl.Text;

            PreferencesForm.ActiveForm.Cursor = Cursors.WaitCursor;

            try
            {
                JiraRequest req = new JiraRequest(jiraUrl, login, password);
                String      res = req.create("mypermissions" /*"search?jql=filter=-2"*/).getResponse();

                return(true);
            }
            catch (Exception e)
            {
                MessageBox.Show("Connection error: " + e.Message, "",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Error);

                return(false);
            }
            finally
            {
                PreferencesForm.ActiveForm.Cursor = Cursors.Arrow;
            }
        }
        private void updateIssues()
        {
            toggleLoader(true);
            // imgLoading.Show();
            issuesSource.Clear();

            bool issuesFound = false;

            try
            {
                JiraRequest req    = new JiraRequest();
                JObject     result = req.create(
                    "search?jql=" +
                    Uri.EscapeUriString(currentIssuesFilter.jql).Replace("%20", "+") + "&fields=id,key,summary")
                                     .getResponseAsJObject();


                foreach (JObject issue in result.Children <JProperty>()
                         .FirstOrDefault(x => x.Name == "issues").Value.Children())
                {
                    if (!issuesFound)
                    {
                        issuesFound = true;
                    }

                    issuesSource.Add(new JiraIssue {
                        ID    = int.Parse(issue.GetValue("id").ToString()),
                        title = ((JObject)issue.GetValue("fields")).GetValue("summary").ToString(),
                        code  = issue.GetValue("key").ToString(),
                    });
                }
            }
            catch (Exception ex) { }

            if (!issuesFound)
            {
                issuesSource.Add(new JiraIssue
                {
                    ID    = 0,
                    title = "No Issue selected",
                    code  = "0"
                });
            }

            toggleLoader(false);
            //imgLoading.Hide();
        }
        private void updateIssuesFilters()
        {
            try
            {
                JiraRequest req    = new JiraRequest();
                JArray      result = req.create("filter/favourite").getResponseAsJArray();

                foreach (JObject child in result)
                {
                    issuesFilterSource.Add(new JiraIssueFilter {
                        title = child.GetValue("name").ToString(),
                        ID    = int.Parse(child.GetValue("id").ToString()),
                        jql   = child.GetValue("jql").ToString()
                    });
                }
            }
            catch (Exception ex) { }
        }
        private void updateIssuesFilters()
        {
            try
            {
                JiraRequest req = new JiraRequest();
                JArray result = req.create("filter/favourite").getResponseAsJArray();

                foreach (JObject child in result)
                {
                    issuesFilterSource.Add( new JiraIssueFilter {
                            title = child.GetValue("name").ToString(),
                            ID = int.Parse(child.GetValue("id").ToString()),
                            jql = child.GetValue("jql").ToString()
                    });
                }
            }
            catch (Exception ex) { }
        }
        private void btnStop_Click(object sender, EventArgs e)
        {
            if (!isTimerControlsEnabled || !timer.isRunning) return;
            
            timer.pause();

            try
            {
                TimeSpan t = TimeSpan.FromSeconds(timer.secondsPassed);
                string worklog = JsonConvert.SerializeObject(new JiraIssueWorkLog {
                    timeSpentSeconds = timer.secondsPassed,
                    //timeSpent = t.Hours + "h " + t.Minutes + "m",
                    started = new DateTimeOffset(DateTime.UtcNow).Subtract(t).ToString("yyyy-MM-ddTHH:mm:ss.fff+0000")
                }, Formatting.Indented);
                Console.WriteLine(worklog);

                JiraRequest req = new JiraRequest();
                req.create("issue/" + currentIssue.ID.ToString() + "/worklog", worklog);
                Console.WriteLine(req.getResponse());

                btnStartPause.Image = global::JiraSimpleTimeTracker.Properties.Resources.Play_32;
                timer.stop();
                lbTimer.Text = "00:00:00";
            }
            catch(Exception ex)
            {
                btnStartPause.Image = global::JiraSimpleTimeTracker.Properties.Resources.Pause_32;
            }
        }
        private void updateIssues()
        {
            toggleLoader(true);
            // imgLoading.Show();
            issuesSource.Clear();

            bool issuesFound = false;

            try
            {
                JiraRequest req = new JiraRequest();
                JObject result = req.create(
                        "search?jql=" + 
                        Uri.EscapeUriString(currentIssuesFilter.jql).Replace("%20", "+") + "&fields=id,key,summary")
                    .getResponseAsJObject();
                

                foreach (JObject issue in result.Children<JProperty>()
                    .FirstOrDefault(x => x.Name == "issues").Value.Children())
                {
                    if (!issuesFound) issuesFound = true;

                    issuesSource.Add(new JiraIssue {
                        ID = int.Parse( issue.GetValue("id").ToString() ),
                        title = ((JObject)issue.GetValue("fields")).GetValue("summary").ToString(),
                        code = issue.GetValue("key").ToString(),
                    });
                }
            }
            catch (Exception ex) { }

            if (!issuesFound)
                issuesSource.Add(new JiraIssue
                {
                    ID = 0,
                    title = "No Issue selected",
                    code = "0"
                });

            toggleLoader(false);
            //imgLoading.Hide();
        }