/// <summary> /// Add / Edit a collector via device twin. /// </summary> private async void SetCollectorButton_ClickAsync(object sender, RoutedEventArgs e) { string collectorName = CollectorNameInput.Text; string collectorMaxSize = CollectorMaxSizeInput.Text; if (collectorName.Length == 0 || collectorMaxSize.Length == 0) { _mainPage.ShowDialogAsync("Invaid Input", "Please make sure Collector Name and Max Size is not empty"); return; } int collectorMaxFileSize = 0; if (!Int32.TryParse(CollectorMaxSizeInput.Text, out collectorMaxFileSize)) { _mainPage.ShowDialogAsync("Invaid Input", " Max Size is not Integer"); return; } EventTracingDataContract.CollectorInner collectorInner = new EventTracingDataContract.CollectorInner { name = collectorName, traceMode = EventTracingDataContract.TraceModeFromJsonString(CollectorModeCombobox.SelectedValue.ToString()), logFileSizeLimitMB = collectorMaxFileSize, logFileFolder = CollectorFolderNameInput.Text, logFileName = CollectorFileNameInput.Text, started = CollectorStartedChckbx.IsChecked == true }; if (AddProviderChckbx.IsChecked == true) { if (ProviderGUIDInput.Text.Length == 0) { _mainPage.ShowDialogAsync("Invaid Input", "Please make sure Provider GUID is not empty"); return; } EventTracingDataContract.Provider provider = new EventTracingDataContract.Provider(); provider.guid = ProviderGUIDInput.Text; provider.traceLevel = EventTracingDataContract.TraceLevelFromJsonString(ProviderTraceLevelCombobox.SelectedValue.ToString()); provider.keywords = ProviderKeywordsInput.Text; provider.enabled = ProviderEnabledChckbx.IsChecked == true; collectorInner.providers.Add(provider); } string refreshingValue = "\"refreshing\""; string finalValue = "{ \"eventTracingCollectors\" : {\"" + collectorName + "\": {\"applyProperties\" : " + JsonConvert.SerializeObject(collectorInner.ToJsonObject()) + ", \"reportProperties\": \"yes\"}}}"; await _mainPage.UpdateTwinData(refreshingValue, finalValue); }