Example #1
0
        public void CreateAndQueryIssueWithSubTask()
        {
            var parentTask = _jira.CreateIssue("TST");

            parentTask.Type    = "1";
            parentTask.Summary = "Test issue with SubTask" + _random.Next(int.MaxValue);
            parentTask.SaveChanges();

            var subTask = _jira.CreateIssue("TST", parentTask.Key.Value);

            subTask.Type    = "5"; // SubTask issue type.
            subTask.Summary = "Test SubTask" + _random.Next(int.MaxValue);
            subTask.SaveChanges();

            Assert.False(parentTask.Type.IsSubTask);
            Assert.True(subTask.Type.IsSubTask);
            Assert.Equal(parentTask.Key.Value, subTask.ParentIssueKey);

            // query the subtask again to make sure it loads everything from server.
            subTask = _jira.GetIssue(subTask.Key.Value);
            Assert.False(parentTask.Type.IsSubTask);
            Assert.True(subTask.Type.IsSubTask);

#if !SOAP
            Assert.Equal(parentTask.Key.Value, subTask.ParentIssueKey);
#endif
        }
        public void DeleteIssue(string id)
        {
            Issue issue = _jira.GetIssue(id);

            if (issue != null)
            {
                _jira.DeleteIssue(issue);
            }
        }
Example #3
0
 public Issue GetJiraIssue(string jiraRef)
 {
     try
     {
         CheckAndConnectJira();
         return(jira.GetIssue(jiraRef));
     }
     catch (Exception ex)
     {
         throw new NoResultsFoundException(string.Format("Unable to locate Jira {0}", jiraRef), ex);
     }
 }
Example #4
0
        public void AddAttachment(string path, string issueID)
        {
            XMLParse _oWaXmlData = new XMLParse();

            _oWaXmlData.LoadXML("../../Config/ApplicationSettings.xml");
            jiraURL      = _oWaXmlData.getData("settings/JiraCredentials", "URL");
            jiraUsername = _oWaXmlData.getData("settings/JiraCredentials", "UserName");
            jiraPassword = _oWaXmlData.getData("settings/JiraCredentials", "Password");
            jiraConn     = new Jira(jiraURL[0], jiraUsername[0], jiraPassword[0]);

            string jqlString = "project = PegasusCRM AND issuetype = Bug";
            bool   result    = false;
            IEnumerable <Atlassian.Jira.Issue> jiraIssues = jiraConn.GetIssuesFromJql(jqlString);

            foreach (var issue in jiraIssues)
            {
                if (issue.Key.Value == issueID)
                {
                    Issue foundissue = jiraConn.GetIssue(issueID);
                    foundissue.AddAttachment(path);
                    Console.WriteLine("Attachment Added Successfully");
                    foundissue.SaveChanges();
                    result = true;
                    break;
                }
            }
            if (!result)
            {
                Console.WriteLine("Failed To Add Attachment");
            }
        }
Example #5
0
        public void AddAttachment(string path, string issueID)
        {
            XMLParse _oWaXmlData = new XMLParse();

            _oWaXmlData.LoadXML("../../Config/ApplicationSettings.xml");
            jiraURL = _oWaXmlData.getData("settings/JiraCredentials", "URL");
            jiraUsername = _oWaXmlData.getData("settings/JiraCredentials", "UserName");
            jiraPassword = _oWaXmlData.getData("settings/JiraCredentials", "Password");
            jiraConn = new Jira(jiraURL[0], jiraUsername[0], jiraPassword[0]);

            string jqlString = "project = PegasusCRM AND issuetype = Bug";
            bool result = false;
            IEnumerable<Atlassian.Jira.Issue> jiraIssues = jiraConn.GetIssuesFromJql(jqlString);
            foreach (var issue in jiraIssues)
            {
                if (issue.Key.Value == issueID)
                {
                    Issue foundissue = jiraConn.GetIssue(issueID);
                    foundissue.AddAttachment(path);
                    Console.WriteLine("Attachment Added Successfully");
                    foundissue.SaveChanges();
                    result = true;
                    break;
                }
            }
            if (!result)
            {
                Console.WriteLine("Failed To Add Attachment");
            }
        }
Example #6
0
        public bool GetJiraIssueDetail(string jiraNr)
        {
            if (!LoginJira())
            {
                return(false);
            }
            try
            {
                _issue = jira.GetIssue(jiraNr);
            }
            catch (Exception)
            {
                return(false);
            }

            return(true);
        }
        public async Task <List <KeyValueDTO> > GetJiraIssue(string jiraKey, AuthorizationToken authToken)
        {
            return(await InterceptJiraExceptions(() =>
            {
                Jira jira = CreateRestClient(authToken.Token);
                var issue = jira.GetIssue(jiraKey);

                return CreateKeyValuePairList(issue, jira);
            }));
        }
Example #8
0
        public void AddComment(string issueID, string Comment)
        {
            XMLParse _oWaXmlData = new XMLParse();

            _oWaXmlData.LoadXML("../../Config/ApplicationSettings.xml");
            jiraURL      = _oWaXmlData.getData("settings/JiraCredentials", "URL");
            jiraUsername = _oWaXmlData.getData("settings/JiraCredentials", "UserName");
            jiraPassword = _oWaXmlData.getData("settings/JiraCredentials", "Password");
            jiraConn     = new Jira(jiraURL[0], jiraUsername[0], jiraPassword[0]);

            try
            {
                Issue issue = jiraConn.GetIssue(issueID);
                issue.AddComment(Comment);
                issue.SaveChanges();
                Console.WriteLine("Comment added to Issue - " + issueID + " Successfully");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
Example #9
0
        public void AddComment(string issueID, string Comment)
        {
            XMLParse _oWaXmlData = new XMLParse();

            _oWaXmlData.LoadXML("../../Config/ApplicationSettings.xml");
            jiraURL = _oWaXmlData.getData("settings/JiraCredentials", "URL");
            jiraUsername = _oWaXmlData.getData("settings/JiraCredentials", "UserName");
            jiraPassword = _oWaXmlData.getData("settings/JiraCredentials", "Password");
            jiraConn = new Jira(jiraURL[0], jiraUsername[0], jiraPassword[0]);

            try
            {
                Issue issue = jiraConn.GetIssue(issueID);
                issue.AddComment(Comment);
                issue.SaveChanges();
                Console.WriteLine("Comment added to Issue - " + issueID + " Successfully");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
 private void SubmitCommentIfDifferent(string key, string comment)
 {
     Jira = Session["jira"] as Jira;
     if(Jira != null)
     {
         var issue = Jira.GetIssue(key);
         FinalBuilds = Session["builds"] as List<ConnectorBuildItem>;
         var issueInCache = FinalBuilds.Where(x => x.ParentTicket.Key == key).Select(x => x).FirstOrDefault();
         if(issueInCache!=null && (issueInCache.ParentTicket.Description == null ? "" : Regex.Replace(issueInCache.ParentTicket.Description, @"\s+", "")) != Regex.Replace(comment, @"\s+", ""))
         {
             issue.AddComment(comment);
             FileWriter.Log(string.Format("Comment on {0} by {1}", key, Session["username"] != null ? Session["username"].ToString(): "Unknown user"));
             if (issueInCache != null && FinalBuilds.Contains(issueInCache))
             {
                 FinalBuilds.Remove(issueInCache);
                 issueInCache.ParentTicket.Description = comment;
                 FinalBuilds.Add(issueInCache);
                 Session["builds"] = FinalBuilds;
             }
         }
     }
 }        
 private bool InitiateConnection(string userName, string password)
 {
     bool success = true;
     try
     {
         Jira = Jira.CreateRestClient(BaseURL, userName, password);
         Jira.MaxIssuesPerRequest = MaxIssueCount;
         var testQueryResult = Jira.GetIssue("AAI-1");
         success = testQueryResult != null;
     }
     catch (Exception e)
     {
         Debug.WriteLine(e.Message);
         success = false;
     }
     Session["SuccessfulLogin"] = success;
     return success;
 }
        public ActionResult Details(string Id)
        {
            JiraIssues issueDetails = new JiraIssues();
            Issue      issue        = null;
            bool       isFound      = true;

            try
            {
                issue = jc.GetIssue(Id);
            }
            catch (Exception)
            {
                isFound = false;
            }
            finally
            {
                if (isFound)
                {
                    issueDetails.key = issue.Key.Value;
                    if (issue.Type.Id == "6")
                    {
                        issueDetails.type = "Sub-Task";
                    }
                    else
                    {
                        issueDetails.type = issue.Type.Name;
                    }

                    issueDetails.summary = issue.Summary;
                    issueDetails.status  = issue.Status.Name;
                    if (issue.Assignee != null)
                    {
                        issueDetails.assignee = issue.Assignee;
                    }
                    else
                    {
                        issueDetails.assignee = "Not Assigned";
                    }

                    issueDetails.priority = issue.Priority.Name;

                    if (issue.Resolution != null)
                    {
                        issueDetails.resolution = issue.Resolution.Name;
                    }
                    else
                    {
                        issueDetails.resolution = "None";
                    }


                    IEnumerable <Issue> issuesInEpicEnum = null;
                    issuesInEpicEnum          = jc.GetIssuesFromJql("project in (BCTBI, OCTBI) AND \"Epic Link\"=" + Id, Int32.MaxValue);
                    issueDetails.issuesInEpic = issuesInEpicEnum.ToList();
                }
                else
                {
                    issueDetails.issuesInEpic = new List <Issue>();
                }
            }


            //string url = "http://jira.micron.com/rest/agile/1.0/issue/" + Id;
            //string data = null;


            //HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest;
            //req.ContentType = "application/json";
            //req.Method = "GET";

            ////req.Credentials = new NetworkCredential("OCTBI_USER", "cifd99dsfssccEE");

            //string mergedCredentials = string.Format("{0}:{1}", "OCTBI_USER", "cifd99dsfssccEE");
            //byte[] byteCredentials = UTF8Encoding.UTF8.GetBytes(mergedCredentials);
            //string base64Credentials = Convert.ToBase64String(byteCredentials);
            //req.Headers.Add("Authorization", "Basic " + base64Credentials);

            //if (data != null)
            //{
            //    using (StreamWriter writer = new StreamWriter(req.GetRequestStream()))
            //    {
            //        writer.Write(data);
            //    }
            //}


            //HttpWebResponse resp = req.GetResponse() as HttpWebResponse;

            //string result = string.Empty;
            //using (StreamReader reader = new StreamReader(resp.GetResponseStream()))
            //{

            //    result = reader.ReadToEnd();
            //}
            //var test = result;


            return(PartialView("_Details", issueDetails));
        }
        public Task PushTime(AppSetting settings, DateTime startDate, DateTime endDate)
        {
            //tra-74

            if (settings == null)
                throw new Exception("No Jira or Toggl credentials provided.");
            this.VerifySetting(settings.JiraLogin, "JIRA login");
            this.VerifySetting(settings.JiraPassword, "JIRA password");
            this.VerifySetting(settings.JiraUrl, "JIRA URL");
            this.VerifySetting(settings.TogglApiKey, "Toggl API Key");

            var jira = new Jira(settings.JiraUrl, settings.JiraLogin, settings.JiraPassword);
            var toggl = new Toggl.Toggl(settings.TogglApiKey);

            return Task.Run(() =>
                {
                    var timeService = new TimeEntryService(settings.TogglApiKey);
                    var timeParams = new TimeEntryParams();

                    timeParams.StartDate = startDate.Date;
                    timeParams.EndDate = endDate.Date;

                    foreach (var te in timeService.List(timeParams).Where(w => (w.TagNames == null || !w.TagNames.Contains(POSTED_TAG))
                                                                                && !string.IsNullOrEmpty(w.Description)))
                    {
                        KeyValuePair<string, string> description = this.ParseDescription(te.Description);
                        if (string.IsNullOrEmpty(description.Key))
                            continue;

                        var issue = jira.GetIssue(description.Key);
                        issue.AddWorklog(new Worklog(this.GetMinutes(te.Duration.GetValueOrDefault()), DateTime.Parse(te.Start), description.Value));
                        if (te.TagNames == null)
                            te.TagNames = new List<string>();
                        te.TagNames.Add(POSTED_TAG);
                        timeService.Edit(te);
                    }
                });

            //return Task.Run(() =>
            //    {
            //        //Atlassian.Jira.Jira aa = new Atlassian.Jira.Jira("urlhere", "loginhere", "passwordhere");
            //        //var issue = aa.GetIssue("FLW6-2247");
            //        //issue.AddWorklog(new Atlassian.Jira.Worklog)

            //        //var apiKey = "apikeyhere";
            //        //var t = new Toggl.Toggl(apiKey);
            //        //var c = t.User.GetCurrent();

            //        //var timeSrv = new Toggl.Services.TimeEntryService(apiKey);
            //        //var prams = new Toggl.QueryObjects.TimeEntryParams();

            //        //// there is an issue with the date ranges have
            //        //// to step out of the range on the end.
            //        //// To capture the end of the billing range day + 1
            //        //prams.StartDate = DateTime.Now.AddMonths(-1);
            //        //prams.EndDate = DateTime.Now.AddMonths(1);

            //        //var hours = timeSrv.List(prams)
            //        //                        .Where(w => !string.IsNullOrEmpty(w.Description)).ToList();
            //    });
        }
Example #14
0
        public TrackerIssue GetIssue(string issueId)
        {
            Issue issue = _jira.GetIssue(issueId);

            return(Convert(issue));
        }