/// <summary> /// Обработка сообщения LoginMessage с данными о входе\выходе пользователя в павильон /// </summary> /// <param name="outHostId"> идентификатор хоста</param> /// <param name="outConnectionId"> идентификатор соединения</param> /// <param name="outChannelId"> идентификатор канала</param> /// <param name="logMess"> сообщение с данными о входе</param> private void RecieveLogInMessage(int outHostId, int outConnectionId, int outChannelId, LoginMessage logMess) { if (GetUnloggedUser(outHostId, outConnectionId, outChannelId) != null || !GetUser(outHostId, outConnectionId, outChannelId).IsLoggedIn()) { ChatUser user = GetUnloggedUser(outHostId, outConnectionId, outChannelId); unlogedUsers.Remove(user); Debug.Log(logMess.ToString()); uiController.AddLog(logMess.ToString()); user.LogIn(logMess.Userlogin, logMess.Pavilion); if (!users.ContainsKey(logMess.Pavilion)) { users.Add(logMess.Pavilion, new List <ChatUser>()); } users[logMess.Pavilion].Add(user); foreach (Message message in messages) { if (message.Recipient.Equals(logMess.Userlogin) || message.Userlogin.Equals(logMess.Userlogin) || message.Recipient.StartsWith(logMess.Pavilion)) { SendMessage(message, outHostId, outConnectionId); } } } else { if (logMess.IsLogOut) { ChatUser user = GetUser(outHostId, outConnectionId, outChannelId); users[logMess.Pavilion].Remove(user); user.LogIn(null, null); unlogedUsers.Add(user); } } }