private void FinalizeRecording()
        {
            string sequenceComment = $"Advanced UI Sequence Recorded {DateTime.Now}";

            dynamic commentCommand = TypeMethods.CreateTypeInstance(_container, "AddCodeCommentCommand");

            commentCommand.v_Comment = sequenceComment;

            dynamic sequenceCommand = TypeMethods.CreateTypeInstance(_container, "SequenceCommand");

            sequenceCommand.ScriptActions = _sequenceCommandList;
            sequenceCommand.v_Comment     = sequenceComment;

            CallBackForm.AddCommandToListView(commentCommand);
            CallBackForm.AddCommandToListView(sequenceCommand);
        }
        private void FinalizeRecording()
        {
            string sequenceComment = $"UI Sequence Recorded {DateTime.Now}";

            _scriptCommandList = GlobalHook.GeneratedCommands;
            var outputList = new List <ScriptCommand>();

            if (chkGroupIntoSequence.Checked)
            {
                var newSequence = new SequenceCommand();

                foreach (ScriptCommand cmd in _scriptCommandList)
                {
                    newSequence.ScriptActions.Add(cmd);
                }

                if (newSequence.ScriptActions.Count > 0)
                {
                    outputList.Add(newSequence);
                }
            }
            else if (chkGroupMovesIntoSequences.Checked)
            {
                var newSequence = new SequenceCommand();
                newSequence.v_Comment = sequenceComment;

                foreach (ScriptCommand cmd in _scriptCommandList)
                {
                    if (cmd is SendMouseMoveCommand)
                    {
                        var sendMouseCmd = (SendMouseMoveCommand)cmd;
                        if (sendMouseCmd.v_MouseClick != "None")
                        {
                            outputList.Add(newSequence);
                            newSequence           = new SequenceCommand();
                            newSequence.v_Comment = sequenceComment;
                            outputList.Add(cmd);
                        }
                        else
                        {
                            newSequence.ScriptActions.Add(cmd);
                        }
                    }
                    else if (cmd is SendKeystrokesCommand)
                    {
                        outputList.Add(newSequence);
                        newSequence           = new SequenceCommand();
                        newSequence.v_Comment = sequenceComment;
                        outputList.Add(cmd);
                    }
                    else
                    {
                        newSequence.ScriptActions.Add(cmd);
                    }
                }

                if (newSequence.ScriptActions.Count > 0)
                {
                    outputList.Add(newSequence);
                }
            }

            else
            {
                outputList = _scriptCommandList;
            }

            var commentCommand = new AddCodeCommentCommand
            {
                v_Comment = sequenceComment
            };

            outputList.Insert(0, commentCommand);

            foreach (var cmd in outputList)
            {
                CallBackForm.AddCommandToListView(cmd);
            }

            Close();
        }