public static async Task <bool> Update(Dictionary <int, Project> projects) { projects.Clear(); Projects result = new Projects(); Progress.Report(0); do { result = await RedmineApi.GetPaginatedList <Projects>(result); if (result == null) { return(false); } foreach (Project p in result.Items) { projects.Add(p.Id, p); } Progress.Report(projects.Count * 100 / result.TotalCount); result.Offset += result.Limit; }while (projects.Count < result.TotalCount); Progress.Report(100); return(true); }
public static async Task <bool> Update(Dictionary <int, Query> queries) { queries.Clear(); Queries result = new Queries(); Progress.Report(0); do { result = await RedmineApi.GetPaginatedList <Queries>(result); if (result == null) { return(false); } foreach (Query q in result.Items) { queries.Add(q.Id, q); } Progress.Report(queries.Count * 100 / result.TotalCount); result.Offset += result.Limit; }while (queries.Count < result.TotalCount); Progress.Report(100); return(true); }
public static async Task <bool> Update(Dictionary <int, TimeEntry> timeEntries) { timeEntries.Clear(); TimeEntries result = new TimeEntries(); Progress.Report(0); do { result = await RedmineApi.GetPaginatedList <TimeEntries>(result); if (result == null) { return(false); } foreach (TimeEntry e in result.Items) { timeEntries.Add(e.Id, e); } Progress.Report(timeEntries.Count * 100 / result.TotalCount); result.Offset += result.Limit; }while (timeEntries.Count < result.TotalCount); Progress.Report(100); return(true); }
public static async Task <bool> Update(Dictionary <int, User> users) { users.Clear(); Users result = new Users(); Progress.Report(0); do { result = await RedmineApi.GetPaginatedList <Users>(result); if (result == null) { return(false); } foreach (User u in result.Items) { users.Add(u.Id, u); } Progress.Report(users.Count * 100 / result.TotalCount); result.Offset += result.Limit; }while (users.Count < result.TotalCount); Progress.Report(100); return(true); }
/// <summary> /// プロジェクト情報を取得します /// </summary> private void getProjectInfo() { try { if (Settings.Instance.IsValid()) { RedmineApi.apiKey = Settings.Instance.redmineApiKey; RedmineApi.baseUrl = Settings.Instance.redmineUrl; RedmineApi.limit = Settings.Instance.redmineApiLimit; // URL,APIKey指定 this.issueStatus = RedmineApi.GetIssueStatus(); this.projectInfo = RedmineApi.GetProjects(); this.displayProjectInfo(this.projectInfo.projects); } else { MessageBox.Show("設定を行って下さい。"); ConfigWindow.ShowWindow(); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
/// <summary> /// 終了プロジェクトを表示・非表示します /// </summary> /// <param name="sender"></param> /// <param name="e"></param> //private void closedProjectCheckBox_Checked(object sender, RoutedEventArgs e) //{ // // bool isChecked = this.showClosedProjectCheckBox.IsChecked == null ? false : (bool)this.showClosedProjectCheckBox.IsChecked; // this.displayProjectInfo(); //} /// <summary> /// 右クリックイベント /// チケット情報をブラウザで開きます /// </summary> /// <param name = "sender" ></ param > /// < param name="e"></param> private void IssueOpenInBrowser_Click(object sender, RoutedEventArgs e) { if (issueListView.SelectedIndex == -1) { return; } Issue item = issueListView.SelectedItem == null ? null : (Issue)issueListView.SelectedItem; if (item != null) { Utility.OpenUrl(RedmineApi.GetIssueUrl(item.id)); } }
/// <summary> /// 対象プロジェクトのチケット情報を読み込みます /// </summary> /// <param name="projectId"></param> private void getProjectIssuInfo(int projectId, int versionNo) { if (versionNo == 0) { this.issueInfo = RedmineApi.GetProjectIssues(projectId); } else { this.issueInfo = RedmineApi.GetProjectIssuesWithVersion(projectId, versionNo); } TermLabel.Text = "( " + this.issueInfo.startDateString + " ~ " + this.issueInfo.endDateString + " )"; this.displayIssueInfo(this.issueInfo.issues); }
/// <summary> /// ツリー選択 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void treeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { var item = this.treeView.SelectedItem as ProjectData; if (item != null) { this.selectedProject = item; this.Title.Text = item.Name; this.versions = RedmineApi.GetProjectVersions(item.id); this.displayVersionsInfo(); } // menu close MenuToggleButton.IsChecked = false; }
public static async Task <bool> Update(Dictionary <int, Tracker> trackers) { Trackers result = await RedmineApi.GetList <Trackers>(); if (result == null) { return(false); } trackers.Clear(); foreach (Tracker t in result.Items) { trackers.Add(t.Id, t); } return(true); }
public static async Task <bool> Update(Dictionary <int, TimeEntryActivity> activities) { TimeEntryActivities result = await RedmineApi.GetList <TimeEntryActivities>(); if (result == null) { return(false); } activities.Clear(); foreach (TimeEntryActivity e in result.Items) { activities.Add(e.Id, e); } return(true); }
public static async Task <bool> Update(Dictionary <int, IssueStatus> statuses) { IssueStatuses result = await RedmineApi.GetList <IssueStatuses>(); if (result == null) { return(false); } statuses.Clear(); foreach (IssueStatus s in result.Items) { statuses.Add(s.Id, s); } return(true); }
public static async Task <bool> Update(Dictionary <int, IssuePriority> priorities) { IssuePriorities result = await RedmineApi.GetList <IssuePriorities>(); if (result == null) { return(false); } priorities.Clear(); foreach (IssuePriority p in result.Items) { priorities.Add(p.Id, p); } return(true); }
public static async Task <bool> Update(Dictionary <int, Issue> issues, DateTime lastUpdated) { Issues result = new Issues(); Progress.Report(0); string since = lastUpdated.ToString("yyyy-MM-dd\\THH:mm:ss\\Z"); do { result = await RedmineApi.GetPaginatedList <Issues>(result, $"updated_on=%3E%3D{since}"); if (result == null) { return(false); } foreach (Issue i in result.Items) { if (issues.ContainsKey(i.Id)) { issues[i.Id] = i; } else { issues.Add(i.Id, i); } } Progress.Report(issues.Count * 100 / result.TotalCount); result.Offset += result.Limit; }while (issues.Count < result.TotalCount); Progress.Report(100); return(true); }
public static async Task <Issue> Get(int issue_id) { return(await RedmineApi.GetSingle <Issue>(issue_id)); }
public static async Task <Project> Get(int project_id) { return(await RedmineApi.GetSingle <Project>(project_id)); }
public static async Task <User> Get(int user_id) { return(await RedmineApi.GetSingle <User>(user_id)); }