public void DetectConflicts()
        {
            StringBuilder conflicts = new StringBuilder();

            for (int i = 0; i < events.Count; ++i)
            {
                SmartEvent ev = events.GetEvent(i);

                for (int j = 0; j < ev.GetActions().Count; ++j)
                {
                    SmartAction a1 = ev.GetAction(j);
                    SmartAction a2 = SmartFactory.GetInstance().ActionFactory(a1.ID);
                    a2.Copy(a1);

                    for (int p = 0; p < 6; ++p)
                    {
                        if (a1.parameters[p].GetType() != a2.parameters[p].GetType())
                        {
                            conflicts.AppendLine("Instead of parameter: " + a1.parameters[p].GetType() + "\nWe have: " + a2.parameters[p].GetType());
                        }
                    }

                    if (a2.ToString() != a1.ToString())
                    {
                        conflicts.AppendLine("Instead of: \n " + a1.ToString() + "\nWe have:\n " + a2.ToString());
                    }
                }
            }

            if (conflicts.Length > 0)
            {
                MessageBox.Show(conflicts.ToString());
            }
        }