public override void Call(MessageInfoRequest packet, IUser sender, IServerManager manager) { var message = manager.Data.Messages.Where(x => x.Id == packet.Id).FirstOrDefault(); var chat = manager.Data.Chats.Where(x => x.Messages.Any(y => y.Id == packet.Id)).First(); var p = new MessageInfoResponse { Id = message.Id, Text = message.Text, IdChat = chat.Id, IdProfile = message.IdProfile }; sender.Connector.Send(p); }
private MessageModel GetMessage(MessageInfoResponse info) { var chat = Chats.Where(x => x.Id == info.IdChat).First(); if (!chat.Messages.Any(x => x.Id == info.Id)) { var model = new MessageModel { Id = info.Id, Manager = _manager }; chat.Messages.AddSorted(model, x => x.Id); return(model); } return(chat.Messages.Where(x => x.Id == info.Id).First()); }
public void AddMessageInfo(MessageInfoResponse info) { if (!Chats.Any(x => x.Id == info.IdChat)) { return; } var model = GetMessage(info); model.Text = info.Text; if (!_profiles.Any(x => x.Id == info.Id)) { var request = new ProfileInfoRequest { Id = info.IdProfile }; _manager.ConnectionInspector.Send(request); } var profile = GetProfile(info.IdProfile); model.Profile = profile; }
public override void Call(SendMessageRequest packet, IUser sender, IServerManager manager) { var ms = manager.Data.Messages; var chat = manager.Data.Chats.Where(x => x.Id == packet.IdChat).First(); var message = new Message { Id = ms.Count() + 1, IdProfile = sender.Id, Text = packet.Text }; ms.Add(message); chat.Messages.Add(message); var response = new SendMessageResponseLuck { Id = message.Id }; sender.Connector.Send(response); var users = manager.Users.Where(x => x.IsLogIn && chat.Profiles.Any(y => y.Id == x.Id)); foreach (var user in users) { var p = new MessageInfoResponse { Id = message.Id, Text = message.Text, IdChat = chat.Id, IdProfile = message.IdProfile }; user.Connector.Send(p); } }