public void DeserializeTextChatMessageWithoutUserIdNullTest() { RoomId roomId = "55-178"; FirstName firstName = "John"; LastName lastName = "Brawn"; string text = "Message text."; var jsonString = "{\"roomId\":\"55-178\",\"firstName\":\"John\",\"lastName\":\"Brawn\",\"text\":\"Message text.\"}"; var jsonTupleString = $"[{jsonString},10]"; ITextChatMessage deserializedMessage = JsonConvert.DeserializeObject <TextChatMessage>(jsonString); Assert.AreEqual(null, deserializedMessage.UserId); Assert.AreEqual(roomId, deserializedMessage.RoomId); Assert.AreEqual(firstName, deserializedMessage.FirstName); Assert.AreEqual(lastName, deserializedMessage.LastName); Assert.AreEqual(text, deserializedMessage.Text); Assert.AreEqual(null, deserializedMessage.UserId); Assert.AreEqual((string)roomId, (string)deserializedMessage.RoomId); Assert.AreEqual((string)firstName, (string)deserializedMessage.FirstName); Assert.AreEqual((string)lastName, (string)deserializedMessage.LastName); var deserializedTuple = JsonConvert.DeserializeObject <Tuple <TextChatMessage, UserId> >(jsonTupleString, new TupleJsonArrayConverter()); Assert.AreEqual(null, deserializedTuple.Item1.UserId); Assert.AreEqual(roomId, deserializedTuple.Item1.RoomId); Assert.AreEqual(firstName, deserializedTuple.Item1.FirstName); Assert.AreEqual(lastName, deserializedTuple.Item1.LastName); Assert.AreEqual(text, deserializedTuple.Item1.Text); Assert.AreEqual(new UserId(10), deserializedTuple.Item2); }
public async Task AddMessageAsync(ITextChatMessage msg) { if (_rooms.ContainsKey(msg.RoomId)) // The room isn't necessarily loaded (e.g.: ChatRequest is sent, but no one has joined the room yet) { _rooms[msg.RoomId].AddMessage(msg); } await _storage.AddMessageAsync(msg); }
public async Task PostTo(User fromUser, ITextChatMessage msg) { // Mark user as active SetLastActivity(fromUser.Id); // Propagate message OnPostedMessage?.Invoke(msg); // Unset typing ChatModel.UnsetAsTyping(fromUser.Id, silent: true); // Add Message to chat model await ChatModel.AddMessageAsync(msg); }
public async Task AddMessageAsync(ITextChatMessage msg) { using (var db = new HellolingoEntities()) { var record = new DataAccess.TextChat { When = msg.When, RoomId = msg.RoomId, UserId = msg.UserId, DeviceTag = msg.DeviceTag, FirstName = msg.FirstName, LastName = msg.LastName, Text = msg.Text, Visibility = (byte)msg.Visibility, }; db.TextChats.Add(record); await db.SaveChangesAsync(); } }
public Task AddMessageAsync(ITextChatMessage msg) { return(null); }
public void AddMessage(ITextChatMessage msg) { Messages.Add(msg); }