|
|
@@ -29,30 +29,13 @@ namespace NTMiner.ServerMessage {
|
|
|
}
|
|
|
OfficialServer.ServerMessageService.GetServerMessagesAsync(localTimestamp, (response, e) => {
|
|
|
if (response.IsSuccess() && response.Data.Count > 0) {
|
|
|
- LinkedList<ServerMessageData> data = new LinkedList<ServerMessageData>();
|
|
|
- lock (_locker) {
|
|
|
- DateTime maxTime = localTimestamp;
|
|
|
- foreach (var item in response.Data.OrderBy(a => a.Timestamp)) {
|
|
|
- if (item.Timestamp > maxTime) {
|
|
|
- maxTime = item.Timestamp;
|
|
|
- }
|
|
|
- data.AddLast(item);
|
|
|
- _linkedList.AddFirst(item);
|
|
|
- }
|
|
|
- if (maxTime != localTimestamp) {
|
|
|
- VirtualRoot.LocalServerMessageSetTimestamp = maxTime;
|
|
|
- }
|
|
|
- }
|
|
|
- using (LiteDatabase db = new LiteDatabase(_connectionString)) {
|
|
|
- var col = db.GetCollection<ServerMessageData>();
|
|
|
- foreach (var item in data) {
|
|
|
- col.Insert(item);
|
|
|
- }
|
|
|
- }
|
|
|
- VirtualRoot.RaiseEvent(new NewServerMessageLoadedEvent(data));
|
|
|
+ ReceiveServerMessage(response.Data);
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
+ VirtualRoot.BuildCmdPath<ReceiveServerMessageCommand>(action: message => {
|
|
|
+ ReceiveServerMessage(message.Data);
|
|
|
+ });
|
|
|
}
|
|
|
VirtualRoot.BuildCmdPath<AddOrUpdateServerMessageCommand>(action: message => {
|
|
|
if (string.IsNullOrEmpty(_connectionString)) {
|
|
|
@@ -158,6 +141,34 @@ namespace NTMiner.ServerMessage {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ private void ReceiveServerMessage(List<ServerMessageData> data) {
|
|
|
+ if (data == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ DateTime localTimestamp = VirtualRoot.LocalServerMessageSetTimestamp;
|
|
|
+ LinkedList<ServerMessageData> linkedList = new LinkedList<ServerMessageData>();
|
|
|
+ lock (_locker) {
|
|
|
+ DateTime maxTime = localTimestamp;
|
|
|
+ foreach (var item in data.OrderBy(a => a.Timestamp)) {
|
|
|
+ if (item.Timestamp > maxTime) {
|
|
|
+ maxTime = item.Timestamp;
|
|
|
+ }
|
|
|
+ linkedList.AddLast(item);
|
|
|
+ _linkedList.AddFirst(item);
|
|
|
+ }
|
|
|
+ if (maxTime != localTimestamp) {
|
|
|
+ VirtualRoot.LocalServerMessageSetTimestamp = maxTime;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ using (LiteDatabase db = new LiteDatabase(_connectionString)) {
|
|
|
+ var col = db.GetCollection<ServerMessageData>();
|
|
|
+ foreach (var item in linkedList) {
|
|
|
+ col.Insert(item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ VirtualRoot.RaiseEvent(new NewServerMessageLoadedEvent(linkedList));
|
|
|
+ }
|
|
|
+
|
|
|
public List<ServerMessageData> GetServerMessages(DateTime timeStamp) {
|
|
|
var list = new List<ServerMessageData>();
|
|
|
if (string.IsNullOrEmpty(_connectionString)) {
|