예제 #1
0
        private bool isAddProject(bool redmineProject, bool selectedProject, bool bothProject,
                                  List <string> listProject, Project project)
        {
            bool res = false;

            if (redmineProject)
            {
                if (LoadHours.IsItemInPlanActiveProject(project))
                {
                    res = true;
                    return(res);
                }
            }

            if (selectedProject)
            {
                string findProjectName = listProject.Find(x => x.Equals(project.Name));
                if (findProjectName != null)
                {
                    res = true;
                    return(res);
                }
            }

            if (bothProject)
            {
                string findProjectName = listProject.Find(x => x.Equals(project.Name));

                if (LoadHours.IsItemInPlanActiveProject(project) || findProjectName != null)
                {
                    res = true;
                    return(res);
                }
            }

            return(res);
        }
예제 #2
0
        public void GetIssue_ProjectFromRedmine(bool redmineProject, bool selectedProject, bool bothProject, string textProject)
        {
            redmineData.listIssue.Clear();
            redmineData.listOpenIssue.Clear();
            redmineData.listProject.Clear();
            redmineData.listMonthHours.Clear();

            List <string> listProject = getListProject(textProject);

            try
            {
                NameValueCollection parametr = new NameValueCollection {
                    { "project_id", "*" }
                };
                foreach (Project project in redmineManager.GetObjects <Project>(parametr))
                {
                    //MessageBox.Show(project.Status.ToString());
                    //redmineData.listProject.Add(project);

                    if (isAddProject(redmineProject, selectedProject, bothProject, listProject, project))
                    {
                        redmineData.listProject.Add(project);
                    }
                }

                parametr = new NameValueCollection {
                    { "status_id", "open" }
                };
                foreach (Issue issue in redmineManager.GetObjects <Issue>(parametr))
                {
                    Project project = redmineData.listProject.Find(x => x.Id == issue.Project.Id);

                    if (project != null)
                    {
                        if ((issue.StartDate != null) & (issue.DueDate != null) &
                            (issue.AssignedTo != null))
                        {
                            redmineData.listOpenIssue.Add(issue);
                        }
                    }
                }

                parametr = new NameValueCollection {
                    { "status_id", "*" }
                };
                foreach (Issue issue in redmineManager.GetObjects <Issue>(parametr))
                {
                    Project project = redmineData.listProject.Find(x => x.Id == issue.Project.Id);

                    if (issue.Id == 936)
                    {
                        Issue issue_jornals = redmineManager.GetObject <Issue>(issue.Id.ToString(),
                                                                               new NameValueCollection {
                            { "include", "journals" }
                        });
                        this.EmailSaveIssue = issue_jornals;
                    }

                    if (issue.Id == 937)
                    {
                        Issue issue_jornals = redmineManager.GetObject <Issue>(issue.Id.ToString(),
                                                                               new NameValueCollection {
                            { "include", "journals" }
                        });

                        foreach (var journal in issue_jornals.Journals)
                        {
                            string note = journal.Notes;
                            if (!note.Equals(""))
                            {
                                MonthHours monthHours = new MonthHours(note);
                                redmineData.listMonthHours.Add(monthHours);
                            }
                        }
                    }

                    if (project != null)
                    {
                        if ((issue.StartDate != null) & (issue.DueDate != null) &
                            (issue.AssignedTo != null))
                        {
                            redmineData.listIssue.Add(issue);

                            //if (!issue.Status.Name.Contains("Закрыта") & !issue.Status.Name.Contains("Решена") &
                            //    !issue.Status.Name.Contains("Отклонена"))
                            //{
                            //    foreach (IssueRelation issueRelation in redmineManager.GetObjects<IssueRelation>(new NameValueCollection { { "issue_id", issue.Id.ToString() } }))
                            //    {
                            //        if (issueRelation != null)
                            //            issue.Relations.Add(issueRelation);
                            //    }
                            //}
                        }
                    }
                    //else
                    //    listIssue.Add(issue);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error - " + ex.Message);
                MessageBox.Show(redmineData.listIssue[(redmineData.listIssue.Count - 1)].Id.ToString());
            }
            LoadHours.GetYearsFromListIssue(listYear, redmineData.listIssue);
        }