/// <summary> /// Prompts user to edit request option parameters in a modal dialog. /// </summary> private void ShowDialog(TsCDaServer server, TsCDaSubscription subscription) { if (server == null) { throw new ArgumentNullException("server"); } // get supported locales. localeCtrl_.SetSupportedLocales(server.SupportedLocales); // set locale. string locale = (subscription == null)?server.Locale:subscription.Locale; localeCtrl_.Locale = locale; localeSpecifiedCb_.Checked = locale != null; // get filters. int filters = (subscription == null)?server.Filters:subscription.Filters; itemNameCb_.Checked = ((filters & (int)TsCDaResultFilter.ItemName) != 0); itemPathCb_.Checked = ((filters & (int)TsCDaResultFilter.ItemPath) != 0); clientHandleCb_.Checked = ((filters & (int)TsCDaResultFilter.ClientHandle) != 0); itemTimeCb_.Checked = ((filters & (int)TsCDaResultFilter.ItemTime) != 0); errorTextCb_.Checked = ((filters & (int)TsCDaResultFilter.ErrorText) != 0); diagnosticInfoCb_.Checked = ((filters & (int)TsCDaResultFilter.DiagnosticInfo) != 0); // show dialog. while (ShowDialog() == DialogResult.OK) { // update locale. try { locale = null; if (localeSpecifiedCb_.Checked) { locale = localeCtrl_.Locale; } if (subscription == null) { server.SetLocale(locale); } else { TsCDaSubscriptionState state = new TsCDaSubscriptionState(); state.Locale = locale; subscription.ModifyState((int)TsCDaStateMask.Locale, state); } } catch (Exception e) { MessageBox.Show(e.Message); continue; } // update filters. filters = 0; filters |= (itemNameCb_.Checked)?(int)TsCDaResultFilter.ItemName:0; filters |= (itemPathCb_.Checked)?(int)TsCDaResultFilter.ItemPath:0; filters |= (clientHandleCb_.Checked)?(int)TsCDaResultFilter.ClientHandle:0; filters |= (itemTimeCb_.Checked)?(int)TsCDaResultFilter.ItemTime:0; filters |= (errorTextCb_.Checked)?(int)TsCDaResultFilter.ErrorText:0; filters |= (diagnosticInfoCb_.Checked)?(int)TsCDaResultFilter.DiagnosticInfo:0; try { if (subscription == null) { server.SetResultFilters(filters); } else { subscription.SetResultFilters(filters); } } catch (Exception e) { MessageBox.Show(e.Message); continue; } // break out of loop if no error. break; } }