Skip to content

Commit fc50f55

Browse files
committed
Added timestamps to messages
1 parent c5e4e68 commit fc50f55

File tree

8 files changed

+26
-22
lines changed

8 files changed

+26
-22
lines changed

client/Q3Client/App.xaml.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ private void QueueMessageReceived(object sender, QueueMessageEventArgs queueMess
169169
Dispatcher.Invoke(
170170
() =>
171171
queueUpdater.AddQueueMessage(queueMessageEventArgs.QueueId, queueMessageEventArgs.Sender,
172-
queueMessageEventArgs.Message));
172+
queueMessageEventArgs.Message, queueMessageEventArgs.Timestamp));
173173
}
174174

175175
private void QueueNagged(object sender, QueueIdEventArgs e)

client/Q3Client/ChatMessage.xaml.cs

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public ChatMessage(Queue.Message message)
2525
InitializeComponent();
2626
AvatarCanvas.Children.Add(new Avatar(message.Sender));
2727
MessageText.Text = message.Content;
28+
MessageText.ToolTip = "Sent at " + message.Timestamp.ToLocalTime().ToString("HH:mm:ss");
2829
}
2930
}
3031
}

client/Q3Client/Hub.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public Hub(User user, Dispatcher dispatcher)
4242
hub.On<Queue>("NewQueue", q => RaiseEvent("created", QueueCreated, q));
4343
hub.On<Queue>("QueueMembershipChanged", q => RaiseEvent("membershipchanged", QueueMembershipChanged, q));
4444
hub.On<Queue>("QueueStatusChanged", q => RaiseEvent("statuschanged", QueueStatusChanged, q));
45-
hub.On<int, User, string>("QueueMessageSent", RaiseMessageEvent);
45+
hub.On<int, User, string, DateTimeOffset>("QueueMessageSent", RaiseMessageEvent);
4646
hub.On<int>("NagQueue", id => RaiseEvent("nag", QueueNagged, id));
4747
hubConnection.Headers["User"] = this.user.ToString();
4848
hubConnection.StateChanged += HubConnectionOnStateChanged;
@@ -157,10 +157,10 @@ private void RaiseEvent(string name, EventHandler<QueueIdEventArgs> eventHandler
157157
eventHandler.SafeInvoke(this, new QueueIdEventArgs(id));
158158
}
159159

160-
private void RaiseMessageEvent(int queueId, User sender, string message)
160+
private void RaiseMessageEvent(int queueId, User sender, string message, DateTimeOffset timestamp)
161161
{
162-
logger.Info("hub messaage " + queueId + " " + sender + " " + message);
163-
QueueMessageReceived.SafeInvoke(this, new QueueMessageEventArgs(queueId, sender, message));
162+
logger.Info("hub message " + queueId + " " + sender + " " + message);
163+
QueueMessageReceived.SafeInvoke(this, new QueueMessageEventArgs(queueId, sender, message, timestamp));
164164
}
165165

166166
#endregion

client/Q3Client/Queue.cs

+3-2
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,12 @@ public IList<Message> Messages
8484

8585
public bool Equals(Queue other)
8686
{
87-
return other.Id == this.Id;
87+
return other != null && other.Id == Id;
8888
}
8989

9090
public event PropertyChangedEventHandler PropertyChanged;
9191

92-
protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
92+
protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
9393
{
9494
logger.Info("q changed " + propertyName);
9595
PropertyChangedEventHandler handler = PropertyChanged;
@@ -100,6 +100,7 @@ public class Message
100100
{
101101
public User Sender;
102102
public string Content;
103+
public DateTimeOffset Timestamp;
103104

104105
protected bool Equals(Message other)
105106
{

client/Q3Client/QueueActionEventArgs.cs

+8-12
Original file line numberDiff line numberDiff line change
@@ -32,25 +32,21 @@ public QueueIdEventArgs(int id)
3232

3333
public class QueueMessageEventArgs : QueueIdEventArgs
3434
{
35-
private readonly User sender;
36-
private readonly string message;
3735

3836
public QueueMessageEventArgs(int queueId, string message) : base(queueId)
3937
{
40-
this.message = message;
38+
Message = message;
4139
}
4240

43-
public QueueMessageEventArgs(int queueId, User sender, string message) : base(queueId)
41+
public QueueMessageEventArgs(int queueId, User sender, string message, DateTimeOffset timestamp) : base(queueId)
4442
{
45-
this.sender = sender;
46-
this.message = message;
43+
Sender = sender;
44+
Message = message;
45+
Timestamp = timestamp;
4746
}
4847

49-
public string Message { get { return message; } }
50-
51-
public User Sender
52-
{
53-
get { return sender; }
54-
}
48+
public string Message { get; }
49+
public User Sender { get; }
50+
public DateTimeOffset Timestamp { get; }
5551
}
5652
}

client/Q3Client/QueueUpdater.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -147,13 +147,13 @@ public void UpdateQueueStatus(Queue queue)
147147
UpdateQueue(queue);
148148
}
149149

150-
public void AddQueueMessage(int queueId, User sender, string message)
150+
public void AddQueueMessage(int queueId, User sender, string message, DateTimeOffset timestamp)
151151
{
152152
logger.Debug(nameof(AddQueueMessage));
153153
if (queuesById.ContainsKey(queueId))
154154
{
155155
var q = queuesById[queueId];
156-
q.AddMessage(new Queue.Message() {Sender = sender, Content = message});
156+
q.AddMessage(new Queue.Message() {Sender = sender, Content = message, Timestamp = timestamp});
157157
}
158158
}
159159

server/src/Q3Server/QEventsListener.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public void OnQueueCreated(object sender, QueueEventArgs e)
3131

3232
private void QueueMessageSent(object sender, QueueMessageEventArgs e)
3333
{
34-
hubContext.Clients.All.QueueMessageSent(e.Queue.Id, e.Message.Sender, e.Message.Content);
34+
hubContext.Clients.All.QueueMessageSent(e.Queue.Id, e.Message.Sender, e.Message.Content, e.Message.Timestamp);
3535
}
3636

3737
private void QueueStatusChanged(object sender, QueueEventArgs e)

server/src/Q3Server/Queue.cs

+6
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,12 @@ public class Message
137137
{
138138
public User Sender;
139139
public string Content;
140+
public DateTimeOffset Timestamp;
141+
142+
public Message()
143+
{
144+
Timestamp = DateTimeOffset.UtcNow;
145+
}
140146

141147
public string Describe()
142148
{

0 commit comments

Comments
 (0)