public IEnumerable <string> Errors(ChatMessage chat)
        {
            if (_checkList.HasFlag(CheckList.UserId) && chat.UserGuid != default)
            {
                yield return("UserId should exist.");
            }

            if (_checkList.HasFlag(CheckList.Content) && string.IsNullOrEmpty(chat.Content))
            {
                yield return("Content can't be empty or null.");
            }

            if (_checkList.HasFlag(CheckList.ValidUserName) && !IsUsernameValid(chat.UserName))
            {
                yield return("Invalid username format.");
            }

            if (_checkList.HasFlag(CheckList.ValidRegistration))
            {
                bool isValidRegistration = chat.Command == Command.REQ_REGISTER_USERNAME &&
                                           IsUsernameValid(chat.UserName);

                if (!isValidRegistration)
                {
                    yield return("Invalid registration command");
                }
            }

            if (_checkList.HasFlag(CheckList.ValidExit))
            {
                bool isValidExit = chat.Command == Command.REQ_END_SESSION &&
                                   IsUsernameValid(chat.UserName);

                if (!isValidExit)
                {
                    yield return("Invalid exit command");
                }
            }

            yield break;
        }