public ChatMessageWidget(string senderUuid, string message, DateTime receivedTime, ChatMessageStatus status) { this.ReceivedTime = receivedTime; this.SenderUuid = senderUuid; this.Message = message; this.Status = status; }
private void ChangeMessageViewStatus(ChatMessageStatus status) { MessageStatusView.Visibility = ViewStates.Visible; int statusImageResourceId; switch (status) { case ChatMessageStatus.Sending: statusImageResourceId = StyleHelper.Style.MessageStatusSentIcon; break; case ChatMessageStatus.Delivered: statusImageResourceId = StyleHelper.Style.MessageStatusDeliveredIcon; break; case ChatMessageStatus.Read: statusImageResourceId = StyleHelper.Style.MessageStatusReadIcon; break; case ChatMessageStatus.Other: MessageStatusView.Visibility = ViewStates.Gone; return; default: throw new InvalidEnumArgumentException(); } MessageStatusView.SetImageResource(statusImageResourceId); }
public async Task <UpdateResult> SetMessageStatusAsync(string messageId, ChatMessageStatus status) { var update = Builders <ChatMessage> .Update.Set(m => m.Status, status); var result = await Collection.UpdateOneAsync(m => m.Id == messageId, update); return(result); }
public ChatMessageWidget(string senderUuid, string message) { this.SenderUuid = senderUuid; this.Message = message; this.ReceivedTime = DateTime.UtcNow; this.Status = ChatMessageStatus.PENDING; }
public ChatMessageWidget(string messageId, string senderUuid, string message, DateTime receivedTime, ChatMessageStatus status) { this.MessageId = messageId; this.ReceivedTime = receivedTime; this.SenderUuid = senderUuid; this.Message = message; this.Status = status; // Pre-cache the user's display name and blocked status if (!Client.Instance.TryGetDisplayName(SenderUuid, out cachedDisplayName)) { cachedDisplayName = "???"; } cachedBlockedState = Client.Instance.BlockedUsers.Contains(SenderUuid); }
/// <inheritdoc /> /// <exception cref="ArgumentException">Chat message with the given message ID does not exist</exception> public override void Update() { // Update the message status if we've been given a message ID if (MessageId != null) { if (!Client.Instance.TryGetMessage(MessageId, out ClientChatMessage message)) { throw new ArgumentException("Chat message with the given message ID does not exist."); } Status = message.Status; } // Update the sender's display name and blocked states if (!Client.Instance.TryGetDisplayName(SenderUuid, out cachedDisplayName)) { cachedDisplayName = "???"; } cachedBlockedState = Client.Instance.BlockedUsers.Contains(SenderUuid); }
public ChatMessageWidget(string senderUuid, string message, DateTime receivedTime, ChatMessageStatus status) : this(null, senderUuid, message, receivedTime, status) { }
/// <inheritdoc /> /// <summary> /// Creates a new <see cref="ClientChatMessage"/> with the given message ID, sender UUID, message, timestamp, and status. /// </summary> /// <param name="messageId">Unique message ID</param> /// <param name="senderUuid">Sender's UUID</param> /// <param name="message">Message</param> /// <param name="timestamp">Message timestamp</param> /// <param name="status">Status</param> public ClientChatMessage(string messageId, string senderUuid, string message, DateTime timestamp, ChatMessageStatus status) : base(messageId, senderUuid, message, timestamp) { this.Status = status; }
/// <inheritdoc /> /// <summary> /// Creates a new <see cref="ClientChatMessage"/> with the given message ID, sender UUID, message, and timestamp with a pending status. /// </summary> /// <param name="messageId">Unique message ID</param> /// <param name="senderUuid">Sender's UUID</param> /// <param name="message">Message</param> /// <param name="timestamp">Message timestamp</param> public ClientChatMessage(string messageId, string senderUuid, string message, DateTime timestamp) : base(messageId, senderUuid, message, timestamp) { this.Status = ChatMessageStatus.PENDING; }
/// <inheritdoc /> /// <summary> /// Creates a new <see cref="ClientChatMessage"/> with the given message ID, sender UUID, message, and status and sets the timestamp to now. /// </summary> /// <param name="messageId">Unique message ID</param> /// <param name="senderUuid">Sender's UUID</param> /// <param name="message">Message</param> /// <param name="status">Status</param> public ClientChatMessage(string messageId, string senderUuid, string message, ChatMessageStatus status) : base(messageId, senderUuid, message) { this.Status = status; }
/// <inheritdoc /> /// <summary> /// Creates a new <see cref="ClientChatMessage"/> with the given message ID, sender UUID, and message and sets the timestamp to now with a pending status. /// </summary> /// <param name="messageId">Unique message ID</param> /// <param name="senderUuid">Sender's UUID</param> /// <param name="message">Message</param> public ClientChatMessage(string messageId, string senderUuid, string message) : base(messageId, senderUuid, message) { this.Status = ChatMessageStatus.PENDING; }