/// <summary>
        /// A collector is selected, update textboxes with selected collector.
        /// </summary>
        private void ListViewCollectors_ItemClick(object sender, ItemClickEventArgs e)
        {
            CollectorReported collectorReported = (CollectorReported)e.ClickedItem;

            CollectorNameInput.Text             = collectorReported.Name;
            CollectorModeCombobox.SelectedIndex = (int)collectorReported.CollectorInners.traceMode;
            CollectorMaxSizeInput.Text          = collectorReported.CollectorInners.logFileSizeLimitMB.ToString();
            CollectorFolderNameInput.Text       = collectorReported.CollectorInners.logFileFolder;
            CollectorFileNameInput.Text         = collectorReported.CollectorInners.logFileName;
            CollectorStartedChckbx.IsChecked    = collectorReported.CollectorInners.started;

            if (collectorReported.CollectorInners.providers.Count > 0)
            {
                var provider = collectorReported.CollectorInners.providers[0];
                AddProviderChckbx_Checked(sender, e);
                ProviderGUIDInput.Text = provider.guid;
                ProviderTraceLevelCombobox.SelectedIndex = (int)provider.traceLevel;
                ProviderKeywordsInput.Text      = provider.keywords;
                ProviderEnabledChckbx.IsChecked = provider.enabled;
            }
            else
            {
                AddProviderChckbx_Unchecked(sender, e);
            }
        }
        /// <summary>
        /// Update collector list view with json parameter.
        /// </summary>
        /// <param name="token">The json object that describes the collector list.</param>
        private void EventTracingJsonToUI(JToken twinResult)
        {
            if (!(twinResult is JObject))
            {
                _mainPage.ShowDialogAsync("Read Diagnistic Log Twin Error", "Invalid apps node json format!");
                return;
            }

            List <CollectorReported> collectorList = new List <CollectorReported>();
            List <EventTracingDataContract.CollectorInner> collectorInners = new List <EventTracingDataContract.CollectorInner>();
            string lastChangeTime = string.Empty;

            JObject root = (JObject)twinResult;

            foreach (JToken p in root.Children())
            {
                if (!(p is JProperty))
                {
                    continue;
                }

                JProperty childProperty = (JProperty)p;
                if (childProperty.Name == "lastChange")
                {
                    var timeToken = childProperty.Value.SelectToken("time");
                    if (timeToken != null)
                    {
                        lastChangeTime = "Last Update: " + timeToken.ToString();
                    }
                }
                else
                {
                    CollectorReported collectorReported = new CollectorReported();

                    collectorReported.Name = childProperty.Name;
                    EventTracingDataContract.CollectorInner collectorInner = EventTracingDataContract.CollectorInner.FromJsonObject((JObject)childProperty.Value);
                    collectorReported.CollectorInners = collectorInner;
                    collectorList.Add(collectorReported);
                }
            }
            LastChangeTime.Text            = lastChangeTime;
            CollectorsListView.ItemsSource = collectorList;
        }