private void LoadMessage() { try { this.Invoke(new MethodInvoker(delegate { panel2.Enabled = false; })); var SelectedItem = (TwitterAtomationWa.Account) this.Invoke(new Func <TwitterAtomationWa.Account>(() => lsAccount.SelectedItem as TwitterAtomationWa.Account)); Twitterizer.TwitterDirectMessageCollection messages = this.CurrentDMMessages = TwitterAtomationWa.Classes.TwitterHelper.GetDms((SelectedItem as TwitterAtomationWa.Account).ScreenName); List <TwitterUserAddition> Users = getSenderUser(messages); this.Invoke(new MethodInvoker(delegate() { lsMessage.DataSource = Users; //lsMessage.DisplayMember = "Message"; })); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { this.Invoke(new MethodInvoker(delegate { lsMessage.Enabled = lsAccount.Enabled = true; panel2.Enabled = true; })); } }
private void JsonResult(string json) { //throw new NotImplementedException(); try { if (json.StartsWith("{\"direct_message\":")) { try { //var SelectedItem = (TwitterAtomationWa.Account)this.Invoke(new Func<TwitterAtomationWa.Account>(() => lsAccount.SelectedItem as TwitterAtomationWa.Account)); Twitterizer.TwitterDirectMessageCollection messages = Program.main.CurrentDMMessages = TwitterAtomationWa.Classes.TwitterHelper.GetDms(CurrentScreenName); List <TwitterUserAddition> Users = Program.main.getSenderUser(messages); Program.main.Invoke(new MethodInvoker(delegate() { Program.main.lsMessage.DataSource = Users; this.Messages = messages; //lsMessage.DisplayMember = "Message"; })); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Program.main.Invoke(new MethodInvoker(delegate { lsMessage.Enabled = Program.main.lsAccount.Enabled = true; Program.main.panel2.Enabled = true; })); SafeClose(); } } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
public List <TwitterUserAddition> getSenderUser(Twitterizer.TwitterDirectMessageCollection messages) { var user = messages.Select(a => a.Sender).Union(messages.Select(aa => aa.Recipient)); var use = from a in user group a by a.ScreenName into grouping select grouping; List <TwitterUserAddition> additions = new List <TwitterUserAddition>(); foreach (var item in use) { additions.Add(new TwitterUserAddition(item.FirstOrDefault())); } var SelectedItem = (TwitterAtomationWa.Account) this.Invoke(new Func <TwitterAtomationWa.Account>(() => lsAccount.SelectedItem as TwitterAtomationWa.Account)); additions.Remove(additions.FirstOrDefault(aa => aa.TwitterUser.ScreenName == SelectedItem.ScreenName)); return(additions); }