示例#1
0
        public static List <JiraDataModel> GetAllClosedJiras(JiraDataModel searchData)
        {
            var list = new List <JiraDataModel>();

            // create a connection to JIRA
            var jira = Jira.CreateRestClient(jiraURL, jiraUserName, jiraPassword);

            jira.MaxIssuesPerRequest = jiraRequestLimit;

            // try catch becuase if jiraKey is invalid, it throws exception
            try
            {
                IEnumerable <Atlassian.Jira.Issue> issues;

                issues = (from i in jira.Issues select i);

                issues = (from i in issues
                          where i.Status.Name == "Closed"
                          select i);
                foreach (var issue in issues.ToList())
                {
                    list.Add(MapFromJiraIssueToModel(issue));
                }
            }
            catch
            {
            }

            return(list);
        }
示例#2
0
        private static JiraDataModel MapFromJiraIssueToModel(Issue issue)
        {
            JiraDataModel data = null;

            if (issue != null)
            {
                data = new JiraDataModel();

                data.Title       = issue.Summary;
                data.Description = issue.Description;
                data.WorkTicket  = issue.Key.Value;
                data.Project     = issue.Project;

                data.CreatedDate = issue.Created;
                data.UpdatedDate = issue.Updated;
                data.DueDate     = issue.DueDate;

                data.Assignee = issue.Assignee;
                data.Status   = issue.Status.Name;
                data.Priority = issue.Priority.Name;

                //data.PersonId=issue.p
                //data.Type        = issue.Type.Name;
            }

            return(data);
        }
示例#3
0
        public static List <JiraDataModel> GetSelectiveJiras(JiraDataModel searchData)
        {
            var list = new List <JiraDataModel>();

            // create a connection to JIRA
            var jira = Jira.CreateRestClient(jiraURL, jiraUserName, jiraPassword);

            jira.MaxIssuesPerRequest = jiraRequestLimit;

            // try catch becuase if jiraKey is invalid, it throws exception
            try
            {
                IEnumerable <Atlassian.Jira.Issue> issues;

                issues = (from i in jira.Issues select i);

                if (!string.IsNullOrEmpty(searchData.Assignee))
                {
                    issues = (from i in issues where i.Assignee.ToString() == searchData.Assignee.ToLower() select i);
                }
                if (!string.IsNullOrEmpty(searchData.Priority))
                {
                    issues = (from i in issues where i.Priority.Name == searchData.Priority select i);
                }
                if (!string.IsNullOrEmpty(searchData.Project))
                {
                    issues = issues.Where(i => i.Project == searchData.Project);
                }
                if (!string.IsNullOrEmpty(searchData.Status))
                {
                    issues = (from i in issues where i.Status.Name == searchData.Status select i);
                }
                if (searchData.FromUpdatedDate != null)
                {
                    issues = (from i in issues where i.Updated >= searchData.FromUpdatedDate select i);
                }

                if (searchData.ToUpdatedDate != null)
                {
                    issues = (from i in issues where i.Updated <= searchData.ToUpdatedDate select i);
                }

                foreach (var issue in issues.ToList())
                {
                    list.Add(MapFromJiraIssueToModel(issue));
                }
            }
            catch
            {
            }

            return(list);
        }
示例#4
0
        private void GetJiraData()
        {
            contentHolder.Controls.Clear();
            var jiraData = new JiraDataModel();

            if (drpPersons.SelectedValue != "-1")
            {
                jiraData.Assignee = drpPersons.SelectedValue;
            }

            if (drpPriority.SelectedValue != "-1")
            {
                jiraData.Priority = drpPriority.SelectedValue;
            }

            if (drpProject.SelectedValue != "-1")
            {
                jiraData.Project = drpProject.SelectedValue;
            }

            if (drpStatus.SelectedValue != "-1")
            {
                jiraData.Status = drpStatus.SelectedValue;
            }

            jiraData.FromUpdatedDate = oDateRange.FromDate;
            jiraData.ToUpdatedDate   = oDateRange.ToDate;

            //var jiraList = new List<JiraDataModel>();


            var jiraList = JiraDataManager.GetSelectiveJiras(jiraData);

            var distinctPersons = (from row in jiraList
                                   select row.Assignee)
                                  .Distinct(StringComparer.CurrentCultureIgnoreCase).ToList();

            var distinctProjects = (from row in jiraList
                                    select row.Project.Trim())
                                   .Distinct(StringComparer.CurrentCultureIgnoreCase).ToList();

            gridViewJira.DataSource = jiraList;
            gridViewJira.DataBind();
            gridViewJira.AutoGenerateColumns = true;
        }
示例#5
0
        public static JiraDataModel GetDetails(string jiraKey)
        {
            JiraDataModel result = null;

            if (jiraKey != "N/A")
            {
                // create a connection to JIRA
                var jira = Jira.CreateRestClient(jiraURL, jiraUserName, jiraPassword);

                // try catch becuase if jiraKey is invalid, it throws exception
                try
                {
                    var issue = (from i in jira.Issues
                                 where i.Key == jiraKey
                                 select i).First();

                    result = MapFromJiraIssueToModel(issue);
                }
                catch { }
            }

            return(result);
        }
示例#6
0
        private void GetJiraData()
        {
            contentHolder.Controls.Clear();
            var jiraData = new JiraDataModel();

            if (drpPersons.SelectedValue != "-1")
            {
                jiraData.Assignee = drpPersons.SelectedValue;
            }

            jiraData.FromUpdatedDate = oDateRange.FromDate;
            jiraData.ToUpdatedDate   = oDateRange.ToDate;

            var jiraList = JiraDataManager.GetResolvedJiras(jiraData);

            var distinctPersons = (from row in jiraList
                                   select row.Assignee)
                                  .Distinct(StringComparer.CurrentCultureIgnoreCase).ToList();

            var distinctProjects = (from row in jiraList
                                    select row.Project.Trim())
                                   .Distinct(StringComparer.CurrentCultureIgnoreCase).ToList();

            if (jiraList.Count > 0)
            {
                ResultTimePeriod = string.Empty;
                if (oDateRange.FromDate != null)
                {
                    ResultTimePeriod = " From " + oDateRange.FromDate.Value.ToString(SessionVariables.UserDateFormat);
                }
                else
                {
                    ResultTimePeriod = " From " + jiraList.OrderBy(x => x.UpdatedDate).First().UpdatedDate.Value.ToString(SessionVariables.UserDateFormat);
                }

                if (oDateRange.ToDate != null)
                {
                    ResultTimePeriod += " Upto " + oDateRange.ToDate.Value.ToString(SessionVariables.UserDateFormat);
                }
                else
                {
                    ResultTimePeriod += " Upto " + jiraList.OrderBy(x => x.UpdatedDate).Last().UpdatedDate.Value.ToString(SessionVariables.UserDateFormat);
                }
            }

            var tableElement = new HtmlGenericControl("table");

            tableElement.Attributes["class"] = "table table-bordered";

            ResolvedJiraHtmlTable = new StringBuilder();

            // prepare html string
            ResolvedJiraHtmlTable.AppendLine("<table class='table table-bordered'>");

            AddHeaderRow(distinctPersons, tableElement);

            foreach (var project in distinctProjects)
            {
                AddDetailRow(project, distinctPersons, jiraList, tableElement);
            }

            AddAggeregateRow(distinctPersons, jiraList, tableElement);

            ResolvedJiraHtmlTable.AppendLine("</table>");

            contentHolder.Controls.Add(tableElement);
        }
示例#7
0
        public static List <JiraDataModel> GetClosedJiras(JiraDataModel searchData, int month = 0, int year = 0)
        {
            var list = new List <JiraDataModel>();

            // create a connection to JIRA
            var jira = Jira.CreateRestClient(jiraURL, jiraUserName, jiraPassword);

            jira.MaxIssuesPerRequest = jiraRequestLimit;

            // try catch becuase if jiraKey is invalid, it throws exception
            try
            {
                IEnumerable <Atlassian.Jira.Issue> issues;
                issues = (from i in jira.Issues select i);

                if (!string.IsNullOrEmpty(searchData.Assignee))
                {
                    issues = (from i in issues where i.Assignee.ToString() == searchData.Assignee.ToLower() select i);
                }

                if (!string.IsNullOrEmpty(searchData.Project))
                {
                    issues = issues.Where(i => i.Project == searchData.Project);
                }
                if (searchData.FromUpdatedDate != null)
                {
                    issues = (from i in issues where i.Updated >= searchData.FromUpdatedDate select i);
                }

                if (searchData.ToUpdatedDate != null)
                {
                    issues = (from i in issues where i.Updated <= searchData.ToUpdatedDate select i);
                }

                issues = (from i in issues
                          where i.Status.Name == "Closed"
                          select i);

                if (month == 0 && year == 0 && searchData.ToUpdatedDate == null && searchData.FromUpdatedDate == null)
                {
                    issues = (from i in issues
                              where i.Updated.Value.Month == DateTime.Now.Month && i.Updated.Value.Year == DateTime.Now.Year
                              select i);
                }
                else
                {
                    if (month != 0)
                    {
                        issues = (from i in issues
                                  where i.Updated.Value.Month == month
                                  select i);
                    }
                    if (year != 0)
                    {
                        issues = (from i in issues
                                  where i.Updated.Value.Month == month && i.Updated.Value.Year == year
                                  select i);
                    }
                }

                foreach (var issue in issues.ToList())
                {
                    list.Add(MapFromJiraIssueToModel(issue));
                }
            }
            catch
            {
            }

            return(list);
        }