Example #1
0
        /// <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;
            }
        }