using CircleSDK.Model; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using CircleViewer.Models; using Newtonsoft.Json; using Syncfusion.Windows.Forms; using System.Net.Http; using CDPShared; using WMPLib; namespace CircleViewer.Dialogs { public partial class ActivityDlg : Form { private CDPWorker _cdp; List _CircleMeta; public ActivityDlg(CDPWorker cdp) { _cdp = cdp; InitializeComponent(); } private async void ActivityDlg_Load(object sender, EventArgs e) { _CircleMeta = _cdp.Circles; cbCircles.DataSource = _CircleMeta; cbCircles.DisplayMember = "CircleName"; } private async void cbCircles_SelectedValueChanged(object sender, EventArgs e) { CircleInfo ci = (CircleInfo)cbCircles.SelectedItem; if (ci != null) { cbTopics.Enabled = false; lblDescription.Text = ci.CircleDescription; List topics = await _cdp.EnumTopics(ci.CircleId); cbTopics.DataSource = topics; cbTopics.DisplayMember = "TopicName"; cbTopics.Enabled = true; } else lblDescription.Text = ""; } private async void cbTopics_SelectedValueChanged(object sender, EventArgs e) { TopicInfo ti = (TopicInfo)cbTopics.SelectedItem; if (ti != null) { lblTopicDescription.Text = ti.TopicDescription; LoadActivity(); } else lblTopicDescription.Text = ""; } private async Task> LoadCircleActivity(string circleId, string topicId) { List lar = new List(); GetMessagesReply gmReply = await _cdp.API.GetCircleViewwMessages(circleId, topicId); foreach (MessageInfo mi in gmReply.Messages) lar.Add(new ActivityRow(mi)); return lar; } private async Task> LoadCloudActivity(string circleId) { List retList = new List(); var url = "https://circlecloudfuncstaging.azurewebsites.net/api/GetCircleEvents?circleId=" + circleId; HttpClient client = new HttpClient(); var response = await client.GetAsync(url); response.EnsureSuccessStatusCode(); string result = await response.Content.ReadAsStringAsync(); List lrecs = JsonConvert.DeserializeObject>(result); foreach (CircleViewEventRecord rec in lrecs) { retList.Add(new ActivityRow(rec)); } return retList; } private async void LoadActivity() { CircleInfo ci = (CircleInfo)cbCircles.SelectedItem; TopicInfo ti = (TopicInfo)cbTopics.SelectedItem; List lar = new List(); lar.AddRange(await LoadCircleActivity(ci.CircleId, ti.TopicId)); lar.AddRange(await LoadCloudActivity(ci.CircleId)); GetMessagesReply gmReply = await _cdp.API.GetCircleViewwMessages(ci.CircleId, ti.TopicId); sfgActivity.DataSource = lar; } private void sfgActivity_CellDoubleClick(object sender, Syncfusion.WinForms.DataGrid.Events.CellClickEventArgs e) { ActivityRow ar = (ActivityRow)e.DataRow.RowData; ViewMetaDlg dlg = new ViewMetaDlg(ar); dlg.ShowDialog(); } } }