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 = 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…
Add table
Add a link
Reference in a new issue