Private messages refactoring

vnext
Paul Schneider 8 years ago
parent a841c0e391
commit 5bb74b422b
4 changed files with 34 additions and 10 deletions

@ -347,14 +347,17 @@ namespace BookAStar
chatHubProxy = chatHubConnection.CreateHubProxy("ChatHub"); chatHubProxy = chatHubConnection.CreateHubProxy("ChatHub");
chatHubProxy.On<string, string>("addPV", (n, m) => { chatHubProxy.On<string, string>("addPV", (n, m) => {
var msg = new ChatMessage
{
Message = m,
SenderId = n,
Date = DateTime.Now
};
DataManager.Instance.PrivateMessages.Add( DataManager.Instance.PrivateMessages.Add(
new ChatMessage msg
{
Message = m,
SenderId = n,
Date = DateTime.Now
}
); );
DataManager.Instance.ChatUsers.OnPrivateMessage(msg);
}); });
} }

@ -1,5 +1,6 @@
using BookAStar.Data; using BookAStar.Data;
using BookAStar.Model.Social.Chat; using BookAStar.Model.Social.Chat;
using BookAStar.Model.Social.Messaging;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; 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) public override void Merge(ChatUserInfo item)
{ {
var key = GetKey(item); var key = GetKey(item);

@ -7,6 +7,7 @@ using XLabs.Forms.Mvvm;
using YavscLib; using YavscLib;
using System; using System;
using Newtonsoft.Json; using Newtonsoft.Json;
using BookAStar.Model.Social.Messaging;
namespace BookAStar.Model.Social.Chat namespace BookAStar.Model.Social.Chat
{ {
@ -131,7 +132,15 @@ namespace BookAStar.Model.Social.Chat
throw new NotImplementedException(); throw new NotImplementedException();
} }
} }
ObservableCollection<ChatMessage> privateMessages ;
[JsonIgnore]
public ObservableCollection<ChatMessage> PrivateMessages
{
get
{
return privateMessages;
}
}
public void OnConnected(string cxId) public void OnConnected(string cxId)
{ {

@ -14,7 +14,6 @@ namespace BookAStar.ViewModels.Messaging
{ {
public ObservableCollection<ChatMessage> Messages { get; set; } public ObservableCollection<ChatMessage> Messages { get; set; }
public ObservableCollection<ChatMessage> Notifs { get; set; } public ObservableCollection<ChatMessage> Notifs { get; set; }
public ObservableCollection<ChatMessage> PVs { get; set; }
public ChatUserCollection ChatUsers { get; set; } public ChatUserCollection ChatUsers { get; set; }
private ConnectionState state; private ConnectionState state;
@ -29,7 +28,6 @@ namespace BookAStar.ViewModels.Messaging
MainSettings.UserChanged += MainSettings_UserChanged; MainSettings.UserChanged += MainSettings_UserChanged;
Messages = new ObservableCollection<ChatMessage>(); Messages = new ObservableCollection<ChatMessage>();
Notifs = new ObservableCollection<ChatMessage>(); Notifs = new ObservableCollection<ChatMessage>();
PVs = DataManager.Instance.PrivateMessages;
ChatUsers = DataManager.Instance.ChatUsers; ChatUsers = DataManager.Instance.ChatUsers;
App.ChatHubProxy.On<string, string>("addMessage", (n, m) => App.ChatHubProxy.On<string, string>("addMessage", (n, m) =>
{ {

Loading…