/// <summary>
        /// Prompts the user to provide a comment before acknowledging a group of events.
        /// </summary>
        public bool ShowDialog(TsCAeServer server, TsCAeEventNotification[] notifications)
        {
            // prompt user to provide a comment.
            AcknowledgerTB.Text = Environment.UserName;
            CommentTB.Text      = "Acknowledged.";

            if (ShowDialog() != DialogResult.OK)
            {
                return(false);
            }

            try
            {
                // create acknowledgements.
                TsCAeEventAcknowledgement[] acknowledgements = new TsCAeEventAcknowledgement[notifications.Length];

                for (int ii = 0; ii < notifications.Length; ii++)
                {
                    acknowledgements[ii] = new TsCAeEventAcknowledgement(notifications[ii]);
                }

                // acknowledge events.
                OpcResult[] results = server.AcknowledgeCondition(
                    AcknowledgerTB.Text,
                    CommentTB.Text,
                    acknowledgements);

                // check for errors.
                StringBuilder errors = new StringBuilder();

                for (int ii = 0; ii < results.Length; ii++)
                {
                    if (results[ii].Failed())
                    {
                        if (errors.Length > 0)
                        {
                            errors.Append(Environment.NewLine);
                        }

                        errors.Append(acknowledgements[ii].SourceName);
                        errors.Append("/");
                        errors.Append(acknowledgements[ii].ConditionName);
                        errors.Append(" Failed: ");
                        errors.Append(results[ii].ToString());
                        errors.Append(".");
                    }
                }

                // show errors.
                if (errors.Length > 0)
                {
                    MessageBox.Show(errors.ToString(), "Acknowledgement Failed");
                }

                return(true);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }

            return(false);
        }