private async void ListView1_SelectedIndexChanged()

in Tools/MultiplayerSessionHistoryViewer/Form1.cs [262:317]


        private async void ListView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (this.listView1.SelectedItems.Count == 0)
            {
                return;
            }

            if (!this.showingOfflineSession)
            {
                this.queryCancelled = false;

                this.InitViews();
                Tuple<SessionHistoryDocumentResponse, string> queryResponse = null;

                string eToken = await ToolAuthentication.GetDevTokenSilentlyAsync(this.tbScid.Text, this.tbSandbox.Text);

                this.lblExplanation.Text = "Downloading change history for the selected historical\nMPSD document...";
                if (this.listView1.SelectedIndices.Count == 1)
                {
                    var index = this.listView1.SelectedIndices[0];
                    queryResponse = await this.QueryForDocSessionHistoryAsync(eToken, this.listView1.Items[index].SubItems[0].Text, this.listView1.Items[index].SubItems[1].Text).ConfigureAwait(true);
                }

                this.downloadPanel.Hide();

                if (queryResponse.Item2 != null)
                {
                    MessageBox.Show(string.Format("{0}\n\nThe server is busy.\nPlease try again.", queryResponse.Item2), QueryFailure);
                    return;
                }

                if (queryResponse != null && queryResponse.Item1 != null && queryResponse.Item1.Results != null)
                {
                    queryResponse.Item1.Results.Sort((foo1, foo2) => foo1.ChangeNumber.CompareTo(foo2.ChangeNumber));

                    foreach (var item in queryResponse.Item1.Results)
                    {
                        string[] lv2arr = new string[DocumentMetadataColumnCount] 
                            { 
                                item.ChangeNumber == SessionHistory.MaxChangeValue ? "expired" : item.ChangeNumber.ToString(),
                                item.ChangedBy,
                                this.displayDateTimesAsUTCToolStripMenuItem.Checked ? item.Timestamp.ToString() : item.Timestamp.ToLocalTime().ToString(),
                                item.TitleId,
                                item.ServiceId,
                                item.CorrelationId,
                                item.Details
                            };

                        ListViewItem lvi2 = new ListViewItem(lv2arr);
                        this.listView2.Items.Add(lvi2);
                    }

                    this.DisplayChangesInfo();
                }
            }
        }