public static int CalculateLeanKitPriority(Jira.Issue issue) { //LK Priority: 0 = Low, 1 = Normal, 2 = High, 3 = Critical //Jira Priority: Blocker/Critical, Major, Minor, Trivial const int lkPriority = 1; // default to 1 - Normal if (issue == null || issue.Fields == null || issue.Fields.Priority == null || string.IsNullOrEmpty(issue.Fields.Priority.Name)) { return(lkPriority); } switch (issue.Fields.Priority.Name) { case "Blocker": case "Critical": return(3); case "Major": return(2); case "Trivial": return(0); // case "Minor": default: return(1); } }
public static long?CalculateLeanKitAssignedUserId(long boardId, Jira.Issue issue, ILeanKitApi leanKit) { if (issue == null || issue.Fields == null || issue.Fields.Assignee == null || (string.IsNullOrEmpty(issue.Fields.Assignee.Name) && string.IsNullOrEmpty(issue.Fields.Assignee.EmailAddress) && string.IsNullOrEmpty(issue.Fields.Assignee.DisplayName))) { return(null); } var lkUser = leanKit.GetBoard(boardId).BoardUsers.FirstOrDefault(x => x != null && (((!string.IsNullOrEmpty(x.EmailAddress)) && (!string.IsNullOrEmpty( issue.Fields.Assignee.EmailAddress)) && x.EmailAddress.ToLowerInvariant() == issue.Fields.Assignee.EmailAddress .ToLowerInvariant()) || ((!string.IsNullOrEmpty(x.FullName)) && (!string.IsNullOrEmpty( issue.Fields.Assignee.Name)) && x.FullName.ToLowerInvariant() == issue.Fields.Assignee.Name.ToLowerInvariant()) || ((!string.IsNullOrEmpty(x.UserName)) && (!string.IsNullOrEmpty( issue.Fields.Assignee.Name)) && x.UserName.ToLowerInvariant() == issue.Fields.Assignee.Name.ToLowerInvariant()) || ((!string.IsNullOrEmpty(x.FullName)) && (!string.IsNullOrEmpty( issue.Fields.Assignee.DisplayName)) && x.FullName.ToLowerInvariant() == issue.Fields.Assignee.DisplayName .ToLowerInvariant()))); if (lkUser != null) { return(lkUser.Id); } return(null); }
public static long?LeanKitAssignedUserId(this Jira.Issue issue, long boardId, ILeanKitApi leanKit) { return(CalculateLeanKitAssignedUserId(boardId, issue, leanKit)); }
public static CardType LeanKitCardType(this Jira.Issue issue, BoardMapping project) { return(CalculateLeanKitCardType(project, issue.Fields.IssueType.Name)); }
public static int LeanKitPriority(this Jira.Issue issue) { return(CalculateLeanKitPriority(issue)); }
protected override void OnArrange() { base.OnArrange(); MockLeanKitApi.Setup(x => x.GetBoard(It.IsAny<long>())).Returns(_testBoard); var serializer = new JsonSerializer<Jira.Issue>(); var issue1 = new Jira.Issue() { Id = 1, Key = "one", Fields = new Jira.Fields() {Status = new Jira.Status() {Name = "Open"}} }; var restResponse1 = new RestResponse() { Content = serializer.SerializeToString(issue1), StatusCode = HttpStatusCode.OK }; var transitions1 = new Jira.TransitionsResponse() { Transitions = new List<Jira.Transition>() { new Jira.Transition() { Id = "2", Name = "Closed", To = new Jira.Status() {Name = "Closed", Description = "Closed", Id = "2"} } } }; var transitionsSerializer = new JsonSerializer<Jira.TransitionsResponse>(); var restTransitionsResponse1 = new RestResponse() { Content = transitionsSerializer.SerializeToString(transitions1), StatusCode = HttpStatusCode.OK }; MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("latest/issue/one") && y.Method == Method.GET))) .Returns(restResponse1); MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("2/issue/one/transitions") && y.Method == Method.GET))) .Returns(restTransitionsResponse1); MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("issue/one/transitions") && y.Method == Method.POST))) .Returns(restResponse1); var issue2 = new Jira.Issue() { Id = 2, Key = "two", Fields = new Jira.Fields() {Status = new Jira.Status() {Name = "Closed"}} }; var restResponse2 = new RestResponse() { Content = serializer.SerializeToString(issue2), StatusCode = HttpStatusCode.OK }; MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("latest/issue/two") && y.Method == Method.GET))) .Returns(restResponse2); MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("2/issue/two/transitions") && y.Method == Method.GET))) .Returns(restTransitionsResponse1); MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("issue/two/transitions") && y.Method == Method.POST))) .Returns(restResponse2); var errorSerializer = new JsonSerializer<Jira.ErrorMessage>(); var errorResponse = new RestResponse() { Content = errorSerializer.SerializeToString(new Jira.ErrorMessage() {Message = "Error"}), StatusCode = HttpStatusCode.NotFound }; MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("latest/issue/three") && y.Method == Method.GET))) .Returns(errorResponse); MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("2/issue/three/transitions") && y.Method == Method.GET))) .Returns(restTransitionsResponse1); MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("issue/three/transitions") && y.Method == Method.POST))) .Returns(errorResponse); var issue4 = new Jira.Issue() { Id = 4, Key = "four", Fields = new Jira.Fields() {Status = new Jira.Status() {Name = "Open"}} }; var restResponse4 = new RestResponse() { Content = serializer.SerializeToString(issue4), StatusCode = HttpStatusCode.OK }; MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("latest/issue/four") && y.Method == Method.GET))) .Returns(restResponse4); MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("2/issue/four/transitions") && y.Method == Method.GET))) .Returns(errorResponse); MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("issue/four/transitions") && y.Method == Method.POST))) .Returns(restResponse4); var transitions2 = new Jira.TransitionsResponse() { Transitions = new List<Jira.Transition>() { new Jira.Transition() { Id = "3", Name = "Resolved", To = new Jira.Status() {Name = "Resolved", Description = "Resolved", Id = "3"} } } }; var restTransitionsResponse2 = new RestResponse() { Content = transitionsSerializer.SerializeToString(transitions2), StatusCode = HttpStatusCode.OK }; var issue5 = new Jira.Issue() { Id = 5, Key = "five", Fields = new Jira.Fields() {Status = new Jira.Status() {Name = "Open"}} }; var restResponse5 = new RestResponse() { Content = serializer.SerializeToString(issue5), StatusCode = HttpStatusCode.OK }; MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("latest/issue/five") && y.Method == Method.GET))) .Returns(restResponse5); MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("2/issue/five/transitions") && y.Method == Method.GET))) .Returns(restTransitionsResponse2); MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("issue/five/transitions") && y.Method == Method.POST))) .Returns(restResponse5); }
protected override void OnArrange() { base.OnArrange(); MockLeanKitApi.Setup(x => x.GetBoard(It.IsAny<long>())).Returns(_testBoard); var serializer = new JsonSerializer<Jira.Issue>(); var issue1 = new Jira.Issue() { Id = 1, Key = "one", Fields = new Jira.Fields() { Status = new Jira.Status() {Name = "Open"}, Description = "Issue 1", Summary = "Issue 1" } }; var restResponse1 = new RestResponse() { Content = serializer.SerializeToString(issue1), StatusCode = HttpStatusCode.OK }; MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("latest/issue/one") && y.Method == Method.GET))) .Returns(restResponse1); MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("latest/issue/one") && y.Method == Method.PUT))) .Returns(restResponse1); var issue2 = new Jira.Issue() { Id = 2, Key = "two", Fields = new Jira.Fields() { Status = new Jira.Status() {Name = "Open"}, Description = "Issue 2", Summary = "Issue 2" } }; var restResponse2 = new RestResponse() { Content = serializer.SerializeToString(issue2), StatusCode = HttpStatusCode.OK }; MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("latest/issue/two") && y.Method == Method.GET))) .Returns(restResponse2); MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("latest/issue/two") && y.Method == Method.PUT))) .Returns(restResponse2); var issue3 = new Jira.Issue() { Id = 3, Key = "three", Fields = new Jira.Fields() { Status = new Jira.Status() {Name = "Open"}, Description = "Issue 3", Summary = "Issue 3" } }; var restResponse3 = new RestResponse() { Content = serializer.SerializeToString(issue3), StatusCode = HttpStatusCode.OK }; MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("latest/issue/three") && y.Method == Method.GET))) .Returns(restResponse3); MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("latest/issue/three") && y.Method == Method.PUT))) .Returns(restResponse3); var issue4 = new Jira.Issue() { Id = 4, Key = "four", Fields = new Jira.Fields() { Status = new Jira.Status() {Name = "Open"}, Description = "Issue 4", Summary = "Issue 4" } }; var restResponse4 = new RestResponse() { Content = serializer.SerializeToString(issue4), StatusCode = HttpStatusCode.OK }; MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("latest/issue/four") && y.Method == Method.GET))) .Returns(restResponse4); MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("latest/issue/four") && y.Method == Method.PUT))) .Returns(restResponse4); }
protected override void OnArrange() { base.OnArrange(); MockLeanKitApi.Setup(x => x.GetBoard(It.IsAny<long>())).Returns(_testBoard); var serializer = new JsonSerializer<Jira.Issue>(); var prioritySerializer = new JsonSerializer<Jira.Priority[]>(); var issue1 = new Jira.Issue() { Id = 1, Key = "one", Fields = new Jira.Fields() { Status = new Jira.Status() {Name = "Open"}, Description = "Issue 1", Summary = "Issue 1" } }; var priorities = new List<Jira.Priority> { new Jira.Priority { Description = "Blocks", Id = "1", Name = "Blocker" }, new Jira.Priority { Description = "Crashes", Id = "2", Name = "Critical" }, new Jira.Priority { Description = "Major", Id = "3", Name = "Major" }, new Jira.Priority { Description = "Minor", Id = "4", Name = "Minor" }, new Jira.Priority { Description = "Trivial", Id = "1", Name = "Trivial" } }.ToArray(); var restResponse1 = new RestResponse() { Content = serializer.SerializeToString(issue1), StatusCode = HttpStatusCode.OK }; var restResponse2 = new RestResponse() { Content = prioritySerializer.SerializeToString(priorities), StatusCode = HttpStatusCode.OK }; MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("latest/issue") && y.Method == Method.POST))) .Returns(restResponse1); MockRestClient.Setup( x => x.Execute(It.Is<RestRequest>(y => y.Resource.Contains("latest/priority") && y.Method == Method.GET))) .Returns(restResponse2); }
protected override void OnArrange() { base.OnArrange(); MockLeanKitApi.Setup(x => x.GetBoard(It.IsAny<long>())).Returns(_testBoard); var serializer = new JsonSerializer<Jira.IssuesResponse>(); var issue1 = new Jira.Issue() { Id = 1, Key = "one", Fields = new Jira.Fields() { Description = "Issue 1", Status = new Jira.Status() {Description = "Open", Id = "1", Name = "Open"}, Summary = "Issue 1" } }; var issue2 = new Jira.Issue() { Id = 2, Key = "two", Fields = new Jira.Fields() { Description = "Issue 2", Status = new Jira.Status() {Description = "Open", Id = "1", Name = "Open"}, Summary = "Issue 2" } }; var issue3 = new Jira.Issue() { Id = 3, Key = "three", Fields = new Jira.Fields() { Description = "Issue 3", Status = new Jira.Status() {Description = "Open", Id = "1", Name = "Open"}, Summary = "Issue 3" } }; var issueResponse1 = new Jira.IssuesResponse() { Issues = new List<Jira.Issue>() {issue1} }; var restResponse1 = new RestResponse() { Content = serializer.SerializeToString(issueResponse1), StatusCode = HttpStatusCode.OK }; MockRestClient.Setup( x => x.Execute( It.Is<RestRequest>( y => y.Resource.Contains("/search") && y.Method == Method.GET && y.Parameters.FirstOrDefault(z => z.Name == "jql" && z.Value.ToString().Contains("project=\"1\"")) != null))) .Returns(restResponse1); MockLeanKitApi.Setup(x => x.GetCardByExternalId(1, It.IsAny<string>())).Returns((Card) null); MockLeanKitApi.Setup(x => x.AddCard(1, It.IsAny<Card>(), It.IsAny<string>())).Returns(_testCardAddResult1); MockRestClient.Setup( x => x.Execute( It.Is<RestRequest>( y => y.Resource.Contains("/search") && y.Method == Method.GET && y.Parameters.FirstOrDefault(z => z.Name == "jql" && z.Value.ToString().Contains("project=\"2\"")) != null))) .Returns(restResponse1); MockLeanKitApi.Setup(x => x.GetCardByExternalId(2, It.IsAny<string>())).Returns((Card) null); MockLeanKitApi.Setup(x => x.AddCard(2, It.IsAny<Card>(), It.IsAny<string>())).Returns(_testCardAddResult1); var issueResponse3 = new Jira.IssuesResponse() { Issues = new List<Jira.Issue>() {issue1, issue2, issue3} }; var restResponse3 = new RestResponse() { Content = serializer.SerializeToString(issueResponse3), StatusCode = HttpStatusCode.OK }; MockRestClient.Setup( x => x.Execute( It.Is<RestRequest>( y => y.Resource.Contains("/search") && y.Method == Method.GET && y.Parameters.FirstOrDefault(z => z.Name == "jql" && z.Value.ToString().Contains("project=\"3\"")) != null))) .Returns(restResponse3); MockLeanKitApi.Setup(x => x.GetCardByExternalId(3, It.IsAny<string>())).Returns((Card) null); MockLeanKitApi.Setup(x => x.AddCard(3, It.IsAny<Card>(), It.IsAny<string>())).Returns(_testCardAddResult1); MockRestClient.Setup( x => x.Execute( It.Is<RestRequest>( y => y.Resource.Contains("/search") && y.Method == Method.GET && y.Parameters.FirstOrDefault(z => z.Name == "jql" && z.Value.ToString().Contains("project=\"4\"")) != null))) .Returns(restResponse1); MockLeanKitApi.Setup(x => x.GetCardByExternalId(4, It.IsAny<string>())) .Returns(new Card() {Id = 4, ExternalSystemName = "Jira"}); MockLeanKitApi.Setup(x => x.AddCard(4, It.IsAny<Card>(), It.IsAny<string>())).Returns(_testCardAddResult1); MockRestClient.Setup( x => x.Execute( It.Is<RestRequest>( y => y.Resource.Contains("/search") && y.Method == Method.GET && y.Parameters.FirstOrDefault(z => z.Name == "jql" && z.Value.ToString().Contains("project=\"5\"")) != null))) .Returns(restResponse1); MockLeanKitApi.Setup(x => x.GetCardByExternalId(5, It.IsAny<string>())) .Returns(new Card() {Id = 4, ExternalSystemName = "Jirabus"}); MockLeanKitApi.Setup(x => x.AddCard(5, It.IsAny<Card>(), It.IsAny<string>())).Returns(_testCardAddResult1); }