public void Pull() { _initializing = true; if (Business.Data?.Sprint?.Boards != null && Boards.Count == 0) { Boards = new ObservableCollection <Tuple <int, string> >(Business.Data.Sprint.Boards); } if (Business.Data?.Sprint?.Sprints != null) { Sprints = new ObservableCollection <Tuple <int, string> >(Business.Data.Sprint.Sprints); } try { var board = Boards.First(i => i.Item1 == Business.Data.Sprint.SelectedBoard); if (!SelectedBoards.Contains(board)) { SelectedBoards.Add(board); } SelectedSprint = Sprints.First(i => i.Item1 == Business.Data.Sprint.SelectedSprint); } catch (Exception ex) { Debug.WriteLine($"{ex.Message} {ex.StackTrace}"); } _initializing = false; }
public void Flush() { Business.Data.Sprint.SelectedBoard = SelectedBoards.FirstOrDefault()?.Item1 ?? 0; Business.Data.Sprint.SelectedSprint = SelectedSprint?.Item1 ?? 0; Business.Data.Sprint.Boards = Boards?.ToList(); Business.Data.Sprint.Sprints = Sprints?.ToList(); }
private void SelectedBoardChangedComandExecute() { if (!_initializing && !SelectedBoards.Equals(default(Tuple <int, string>))) { try { int board = -1; var boardTuple = SelectedBoards.FirstOrDefault(); if (boardTuple != null) { board = boardTuple.Item1; } if (board >= 0 && Business.Data.Sprint.SelectedBoard == board) { return; } if (board >= 0) { IsBusy = true; Task.Factory.StartNew(() => Business.Jira.GetOpenSprints(board)).ContinueWith(t => { Business.Data.Sprint.SelectedBoard = board; if (!t.IsFaulted) { Sprints = new ObservableCollection <Tuple <int, string> >(t.Result); var sprint = Sprints.FirstOrDefault(i => i.Item1 == Business.Data.Sprint.SelectedSprint); SelectedSprint = sprint ?? Sprints.FirstOrDefault(); } else { _window.ShowMessageAsync("Error fetching open sprints", t.Exception.Flatten().Message + Environment.NewLine + t.Exception.Flatten().StackTrace); } IsBusy = false; }, TaskScheduler.FromCurrentSynchronizationContext()); } } catch (Exception ex) { _window.ShowMessageAsync("Error fetching open sprints", ex.Message + Environment.NewLine + ex.StackTrace); } } _initializing = false; }