public void AddTransition(string currentStateID, char character, string nextStateID)
        {
            if (States.Count == 0)
            {
                throw new InvalidOperationException("State collection is empty.");
            }

            if (!IsInAlphabet(character))
            {
                throw new ArgumentException("Character is not in the alphabet.");
            }

            TransitionViewModel transition = new TransitionViewModel(currentStateID, character, nextStateID);

            if (transitions.Contains(transition))
            {
                throw new ArgumentException("Transition is already defined.");
            }

            transitions.Add(transition);
            graph.AddEdge(currentStateID, character.ToString(), nextStateID);
        }
        public void AddTransition(string currentStateID, char character, string nextStateID)
        {
            if (States.Count == 0)
                throw new InvalidOperationException("State collection is empty.");

            if (!IsInAlphabet(character))
                throw new ArgumentException("Character is not in the alphabet.");

            TransitionViewModel transition = new TransitionViewModel(currentStateID, character, nextStateID);
            if (transitions.Contains(transition))
                throw new ArgumentException("Transition is already defined.");

            transitions.Add(transition);
            graph.AddEdge(currentStateID, character.ToString(), nextStateID);
        }