Private messages refactoring
This commit is contained in:
parent
34323d61ee
commit
0e3e6f9751
4 changed files with 34 additions and 10 deletions
|
|
@ -347,14 +347,17 @@ namespace BookAStar
|
|||
|
||||
chatHubProxy = chatHubConnection.CreateHubProxy("ChatHub");
|
||||
chatHubProxy.On<string, string>("addPV", (n, m) => {
|
||||
var msg = new ChatMessage
|
||||
{
|
||||
Message = m,
|
||||
SenderId = n,
|
||||
Date = DateTime.Now
|
||||
};
|
||||
DataManager.Instance.PrivateMessages.Add(
|
||||
new ChatMessage
|
||||
{
|
||||
Message = m,
|
||||
SenderId = n,
|
||||
Date = DateTime.Now
|
||||
}
|
||||
msg
|
||||
);
|
||||
DataManager.Instance.ChatUsers.OnPrivateMessage(msg);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using BookAStar.Data;
|
||||
using BookAStar.Model.Social.Chat;
|
||||
using BookAStar.Model.Social.Messaging;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
|
@ -16,7 +17,20 @@ namespace BookAStar.ViewModels.Messaging
|
|||
{
|
||||
|
||||
}
|
||||
|
||||
public void OnPrivateMessage(ChatMessage msg)
|
||||
{
|
||||
var sender = this.FirstOrDefault(user => user.Connections.Any(
|
||||
cx => cx.ConnectionId == msg.SenderId
|
||||
));
|
||||
if (sender != null)
|
||||
{
|
||||
sender.PrivateMessages.Add(msg);
|
||||
} else
|
||||
{
|
||||
// TODO alert? or else get chat user info
|
||||
// or else just display this message ...
|
||||
}
|
||||
}
|
||||
public override void Merge(ChatUserInfo item)
|
||||
{
|
||||
var key = GetKey(item);
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ using XLabs.Forms.Mvvm;
|
|||
using YavscLib;
|
||||
using System;
|
||||
using Newtonsoft.Json;
|
||||
using BookAStar.Model.Social.Messaging;
|
||||
|
||||
namespace BookAStar.Model.Social.Chat
|
||||
{
|
||||
|
|
@ -131,7 +132,15 @@ namespace BookAStar.Model.Social.Chat
|
|||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
ObservableCollection<ChatMessage> privateMessages ;
|
||||
[JsonIgnore]
|
||||
public ObservableCollection<ChatMessage> PrivateMessages
|
||||
{
|
||||
get
|
||||
{
|
||||
return privateMessages;
|
||||
}
|
||||
}
|
||||
|
||||
public void OnConnected(string cxId)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ namespace BookAStar.ViewModels.Messaging
|
|||
{
|
||||
public ObservableCollection<ChatMessage> Messages { get; set; }
|
||||
public ObservableCollection<ChatMessage> Notifs { get; set; }
|
||||
public ObservableCollection<ChatMessage> PVs { get; set; }
|
||||
public ChatUserCollection ChatUsers { get; set; }
|
||||
|
||||
private ConnectionState state;
|
||||
|
|
@ -29,7 +28,6 @@ namespace BookAStar.ViewModels.Messaging
|
|||
MainSettings.UserChanged += MainSettings_UserChanged;
|
||||
Messages = new ObservableCollection<ChatMessage>();
|
||||
Notifs = new ObservableCollection<ChatMessage>();
|
||||
PVs = DataManager.Instance.PrivateMessages;
|
||||
ChatUsers = DataManager.Instance.ChatUsers;
|
||||
App.ChatHubProxy.On<string, string>("addMessage", (n, m) =>
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue