public async Task <bool> LoadThread(string token) { IWindowManager wm = IoC.Get <IWindowManager>(); wm.ShowBusyView("Loading Feedbacks..."); try { this.FeedbackThread = await HockeyClientWPF.Instance.OpenFeedbackThreadAsync(token); this.FeedbackMessages.Clear(); if (this.FeedbackThread != null) { this.FeedbackThread.Messages.ForEach(p => FeedbackMessages.Add(new FeedbackMessageViewModel(p))); this.FeedbackMessages.Add(new NewFeedbackMessage(this)); } else { FeedbackToken.DeleteToken(token); raiseDeletedOnServer(); } } catch (Exception ex) { wm.ShowBusyView("An error ocurred:\n" + ex.Message); } finally { wm.HideBusyView(); } return(this.FeedbackThread != null); }
public void CloseThread() { IWindowManager wm = IoC.Get <IWindowManager>(); if (wm.ShowMetroMessageBox("Thread will be closed and cannot be opened later. Continue anyway?", "Close thread", System.Windows.MessageBoxButton.YesNo) == System.Windows.MessageBoxResult.Yes) { FeedbackToken.DeleteToken(this.SelectedFeedbackThread.FeedbackThread.Token); int pos = this.FeedbackThreadList.IndexOf(this.SelectedFeedbackThread); this.FeedbackThreadList.Remove(this.SelectedFeedbackThread); if (this.FeedbackThreadList.Count >= pos + 1) { this.SelectedFeedbackThread = this.FeedbackThreadList[pos]; } else if (this.FeedbackThreadList.Count > 0) { this.SelectedFeedbackThread = this.FeedbackThreadList[this.FeedbackThreadList.Count - 1]; } else { this.NewThread(); } } }