private void FindScriptCounts()
        {
            // Set wait pointer
            Cursor.Current            = Cursors.WaitCursor;
            toolStripStatusLabel.Text = Properties.Resources.Counting_Code_Lines;
            Application.DoEvents();
            try
            {
                // Get codelines object
                SiebelScriptLines codeLines = new SiebelScriptLines(_sciptVersion);

                // Apply settings
                ScriptSettings settings = new ScriptSettings
                {
                    CountObjNameFilter  = _scriptCountObjectNameFilter,
                    CountUserNameFIlter = _scriptCountUserNameFilter,
                    Version             = _sciptVersion,
                    IgnoreInactive      = Settings.Default.ScriptIgnoreInactive
                };
                _siebelApp.GetCodeLineCount(codeLines, settings, UpdateStatusBar);
                PopulateCodeLine(codeLines);
            }
            catch (Exception e3)
            {
                ShowError("Siebel Error", "A problem has occurred while counting code lines",
                          e3.ToString());
            }
            finally
            {
                // Set wait pointer
                Cursor.Current            = Cursors.Default;
                toolStripStatusLabel.Text = Properties.Resources.Ready;
                Application.DoEvents();
            }
        }
        /// <summary>
        /// Handle the button click event for the code line calculation
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonCodeLines_Click(object sender, EventArgs e)
        {
            // Set wait pointer
            Cursor.Current            = Cursors.WaitCursor;
            toolStripStatusLabel.Text = "Counting code lines...";
            dataGridViewCodeLines.Rows.Clear();
            Application.DoEvents();
            try
            {
                SiebelScriptLines codeLines = new SiebelScriptLines(comboBoxVer.Text);

                siebelRep.GetCodeLineCount(siebelApp, codeLines);
                populateCodeLine(codeLines);
            }
            catch (Exception e3)
            {
                showError("Siebel Error", "A problem has occurred while counting code lines",
                          e3.ToString());
            }
            finally
            {
                // Set wait pointer
                Cursor.Current            = Cursors.Default;
                toolStripStatusLabel.Text = "Ready";
                Application.DoEvents();
            }
        }
        /// <summary>
        /// Go through the object types and calculate the number of lines of code
        /// for both Browser and Server script
        /// </summary>
        /// <returns></returns>
        private void populateCodeLine(SiebelScriptLines codeLines)
        {
            // Populate result grid for Application

            int totalAppLines    = codeLines.ApplicationBSLine + codeLines.ApplicationSSLine;
            int totalAdjAppLines = codeLines.AdjustApplicationBSLine + codeLines.AdjustApplicationSSLine;

            int totalAppletLines    = codeLines.AppletBSLine + codeLines.AppletSSLine;
            int totalAdjAppletLines = codeLines.AdjustAppletBSLine + codeLines.AdjustAppletSSLine;

            int totalBCLines    = codeLines.BCBSLine + codeLines.BCSSLine;
            int totalAdjBCLines = codeLines.AdjustBCBSLine + codeLines.AdjustBCSSLine;

            int totalBSLines    = codeLines.BSBSLine + codeLines.BSSSLine;
            int totalAdjBSLines = codeLines.AdjustBSBSLine + codeLines.AdjustBSSSLine;

            int totalServerLines  = codeLines.ApplicationSSLine + codeLines.AppletSSLine + codeLines.BCSSLine + codeLines.BSSSLine;
            int totalBrowserLines = codeLines.ApplicationBSLine + codeLines.AppletBSLine + codeLines.BCBSLine + codeLines.BSBSLine;

            int totalAdjustServerLines  = codeLines.AdjustApplicationSSLine + codeLines.AdjustAppletSSLine + codeLines.AdjustBCSSLine + codeLines.AdjustBSSSLine;
            int totalAdjustBrowserLines = codeLines.AdjustApplicationBSLine + codeLines.AdjustAppletBSLine + codeLines.AdjustBCBSLine + codeLines.AdjustBSBSLine;

            // Populate result grid for Application
            addRowToGrid("Application", codeLines.ApplicationBSLine.ToString() + " (" + codeLines.AdjustApplicationBSLine.ToString() + ")",
                         codeLines.ApplicationSSLine.ToString() + " (" + codeLines.AdjustApplicationSSLine.ToString() + ")",
                         totalAppLines.ToString() + " (" + totalAdjAppLines.ToString() + ")", (totalAppLines - totalAdjAppLines).ToString());
            Application.DoEvents();

            // Populate result grid for Applet
            addRowToGrid("Applet", codeLines.AppletBSLine.ToString() + " (" + codeLines.AdjustAppletBSLine.ToString() + ")",
                         codeLines.AppletSSLine.ToString() + " (" + codeLines.AdjustAppletSSLine.ToString() + ")",
                         totalAppletLines.ToString() + " (" + totalAdjAppletLines.ToString() + ")", (totalAppletLines - totalAdjAppletLines).ToString());
            Application.DoEvents();

            // Populate result grid for Bus Comp
            addRowToGrid("Bus Comp", codeLines.BCBSLine.ToString() + " (" + codeLines.AdjustBCBSLine.ToString() + ")",
                         codeLines.BCSSLine.ToString() + " (" + codeLines.AdjustBCSSLine.ToString() + ")",
                         totalBCLines.ToString() + " (" + totalAdjBCLines.ToString() + ")", (totalBCLines - totalAdjBCLines).ToString());
            Application.DoEvents();

            // Populate result grid for Bus Service
            addRowToGrid("Bus Serv", codeLines.BSBSLine.ToString() + " (" + codeLines.AdjustBSBSLine.ToString() + ")",
                         codeLines.BSSSLine.ToString() + " (" + codeLines.AdjustBSSSLine.ToString() + ")",
                         totalBSLines.ToString() + " (" + totalAdjBSLines.ToString() + ")", (totalBSLines - totalAdjBSLines).ToString());
            Application.DoEvents();

            // Populate overall results
            addRowToGrid("Total", totalServerLines.ToString() + " (" + totalAdjustServerLines.ToString() + ")",
                         totalBrowserLines.ToString() + " (" + totalAdjustBrowserLines.ToString() + ")",
                         codeLines.TotalLine.ToString() + " (" + codeLines.AdjustTotalLine.ToString() + ")", (codeLines.TotalLine - codeLines.AdjustTotalLine).ToString());
            Application.DoEvents();

            // Add to totals
            textTotalLines.Text   = codeLines.TotalLine.ToString();
            textBoxVanLines.Text  = codeLines.AdjustTotalLine.ToString();
            textBoxCustLines.Text = (codeLines.TotalLine - codeLines.AdjustTotalLine).ToString();
            Application.DoEvents();
        }
        /// <summary>
        ///     Go through the object types and calculate the number of lines of code
        ///     for both Browser and Server script
        /// </summary>
        /// <returns></returns>
        private void PopulateCodeLine(SiebelScriptLines codeLines)
        {
            // Populate result grid for Application

            int totalAppLines    = codeLines.ApplicationBsLine + codeLines.ApplicationSsLine;
            int totalAdjAppLines = codeLines.AdjustApplicationBsLine + codeLines.AdjustApplicationSsLine;

            int totalAppletLines    = codeLines.AppletBsLine + codeLines.AppletSsLine;
            int totalAdjAppletLines = codeLines.AdjustAppletBsLine + codeLines.AdjustAppletSsLine;

            int totalBcLines    = codeLines.BcbsLine + codeLines.BcssLine;
            int totalAdjBcLines = codeLines.AdjustBcbsLine + codeLines.AdjustBcssLine;

            int totalBsLines    = codeLines.BsbsLine + codeLines.BsssLine;
            int totalAdjBsLines = codeLines.AdjustBsbsLine + codeLines.AdjustBsssLine;

            int totalServerLines = codeLines.ApplicationSsLine + codeLines.AppletSsLine + codeLines.BcssLine +
                                   codeLines.BsssLine;
            int totalBrowserLines = codeLines.ApplicationBsLine + codeLines.AppletBsLine + codeLines.BcbsLine +
                                    codeLines.BsbsLine;

            int totalAdjustServerLines = codeLines.AdjustApplicationSsLine + codeLines.AdjustAppletSsLine +
                                         codeLines.AdjustBcssLine + codeLines.AdjustBsssLine;
            int totalAdjustBrowserLines = codeLines.AdjustApplicationBsLine + codeLines.AdjustAppletBsLine +
                                          codeLines.AdjustBcbsLine + codeLines.AdjustBsbsLine;

            List <ScriptCountResult> results = new List <ScriptCountResult>
            {
                new ScriptCountResult("Application",
                                      codeLines.ApplicationSsLine.ToString(CultureInfo.InvariantCulture) + " (" +
                                      codeLines.AdjustApplicationSsLine.ToString(CultureInfo.InvariantCulture) + ")",
                                      codeLines.ApplicationBsLine.ToString(CultureInfo.InvariantCulture) + " (" +
                                      codeLines.AdjustApplicationBsLine.ToString(CultureInfo.InvariantCulture) + ")",
                                      totalAppLines.ToString(CultureInfo.InvariantCulture) + " (" +
                                      totalAdjAppLines.ToString(CultureInfo.InvariantCulture) + ")",
                                      (totalAppLines - totalAdjAppLines).ToString(CultureInfo.InvariantCulture)),
                new ScriptCountResult("Applet",
                                      codeLines.AppletSsLine.ToString(CultureInfo.InvariantCulture) + " (" +
                                      codeLines.AdjustAppletSsLine.ToString(CultureInfo.InvariantCulture) + ")",
                                      codeLines.AppletBsLine.ToString(CultureInfo.InvariantCulture) + " (" +
                                      codeLines.AdjustAppletBsLine.ToString(CultureInfo.InvariantCulture) + ")",
                                      totalAppletLines.ToString(CultureInfo.InvariantCulture) + " (" +
                                      totalAdjAppletLines.ToString(CultureInfo.InvariantCulture) + ")",
                                      (totalAppletLines - totalAdjAppletLines).ToString(CultureInfo.InvariantCulture))
            };

            // Populate result grid for Applet
            Application.DoEvents();

            // Populate result grid for Bus Comp
            results.Add(new ScriptCountResult("Business Component",
                                              codeLines.BcssLine.ToString(CultureInfo.InvariantCulture) + " (" +
                                              codeLines.AdjustBcssLine.ToString(CultureInfo.InvariantCulture) + ")",
                                              codeLines.BcbsLine.ToString(CultureInfo.InvariantCulture) + " (" +
                                              codeLines.AdjustBcbsLine.ToString(CultureInfo.InvariantCulture) + ")",
                                              totalBcLines.ToString(CultureInfo.InvariantCulture) + " (" +
                                              totalAdjBcLines.ToString(CultureInfo.InvariantCulture) + ")",
                                              (totalBcLines - totalAdjBcLines).ToString(CultureInfo.InvariantCulture)));
            Application.DoEvents();

            // Populate result grid for Bus Service
            results.Add(new ScriptCountResult("Business Service",
                                              codeLines.BsssLine.ToString(CultureInfo.InvariantCulture) + " (" +
                                              codeLines.AdjustBsssLine.ToString(CultureInfo.InvariantCulture) + ")",
                                              codeLines.BsbsLine.ToString(CultureInfo.InvariantCulture) + " (" + codeLines.AdjustBsbsLine + ")",
                                              totalBsLines + " (" + totalAdjBsLines.ToString(CultureInfo.InvariantCulture) + ")",
                                              (totalBsLines - totalAdjBsLines).ToString(CultureInfo.InvariantCulture)));
            Application.DoEvents();

            // Populate overall results
            results.Add(new ScriptCountResult("Total",
                                              totalServerLines.ToString(CultureInfo.InvariantCulture) + " (" +
                                              totalAdjustServerLines.ToString(CultureInfo.InvariantCulture) + ")",
                                              totalBrowserLines.ToString(CultureInfo.InvariantCulture) + " (" +
                                              totalAdjustBrowserLines.ToString(CultureInfo.InvariantCulture) + ")",
                                              codeLines.TotalLine.ToString(CultureInfo.InvariantCulture) + " (" +
                                              codeLines.AdjustTotalLine.ToString(CultureInfo.InvariantCulture) + ")",
                                              (codeLines.TotalLine - codeLines.AdjustTotalLine).ToString(CultureInfo.InvariantCulture)));
            Application.DoEvents();

            // Populate custom results
            results.Add(new ScriptCountResult("Custom", (totalServerLines - totalAdjustServerLines).ToString(CultureInfo.InvariantCulture),
                                              (totalBrowserLines - totalAdjustBrowserLines).ToString(CultureInfo.InvariantCulture),
                                              (codeLines.TotalLine - codeLines.AdjustTotalLine).ToString(CultureInfo.InvariantCulture), ""));
            Application.DoEvents();

            // Populate the OLV
            objectListViewScriptCount.Objects = results;

            // Add to totals
            textTotalLines.Text   = codeLines.TotalLine.ToString(CultureInfo.InvariantCulture);
            textBoxVanLines.Text  = codeLines.AdjustTotalLine.ToString(CultureInfo.InvariantCulture);
            textBoxCustLines.Text =
                (codeLines.TotalLine - codeLines.AdjustTotalLine).ToString(CultureInfo.InvariantCulture);
            Application.DoEvents();
        }