private static void ProcessUserCommand(string[] data)
    {
        string username    = data[0];
        string commandType = data[1];
        string text        = "";
        int    startIndex  = 0;
        int    length      = 0;
        string result      = null;

        switch (commandType)
        {
        case "insert":
            int index = int.Parse(data[2]);
            text = string.Join(" ", data.Skip(3)).Trim('\"', '\"');
            textEditor.Insert(username, index, text);
            break;

        case "prepend":
            text = text = string.Join(" ", data.Skip(2)).Trim('\"', '\"');
            textEditor.Prepend(username, text);
            break;

        case "substring":
            startIndex = int.Parse(data[2]);
            length     = int.Parse(data[3]);
            textEditor.Substring(username, startIndex, length);
            break;

        case "delete":
            startIndex = int.Parse(data[2]);
            length     = int.Parse(data[3]);
            textEditor.Delete(username, startIndex, length);
            break;

        case "clear":
            textEditor.Clear(username);
            break;

        case "length":
            result = textEditor.Length(username).ToString();
            break;

        case "print":
            result = textEditor.Print(username);
            break;

        case "undo":
            textEditor.Undo(username);
            break;
        }

        if (result != null)
        {
            Console.WriteLine(result);
        }
    }
 public void LogIn(string username)
 {
     if (LogedInUsers.ContainsKey(username))
     {
         textEditor.Clear(username);
     }
     else
     {
         this.LogedInUsers.Add(username, true);
     }
 }