public RemoteDataChange CreateMarkProcededChange(AbstractSharedMessage message) { return(RemoteDataChange.Create( string.Format("{0}/{1}", message.FullPath, nameof(message.Proceeded)), nameof(message.Proceeded), true, null)); }
public RemoteDataChange CreateRemoveChange(AbstractSharedMessage message) { return(RemoteDataChange.Create( message.FullPath, string.Empty, null, null)); }
private void OnMessageAdded(object sender, ChildChangedEventArgs e) { var messageData = e.Snapshot; var type = (string)messageData.Child("MessageType").Value; var message = AbstractSharedMessage.FromJson(type, messageData.GetRawJsonValue()); message.SetPath(messageData.Reference.ToString().Substring(messageData.Reference.Root.ToString().Length)); if (MessageAdded != null) { MessageAdded(message); } }
private void NotifyListeners(AbstractSharedMessage message) { var type = message.GetType(); if (_processors.ContainsKey(type)) { _processors[type].ProcessMessage(message); } else { Debug.LogWarning("No processors registered for message type :: " + type.Name); } }
public override async Task CommitMessage(string userId, AbstractSharedMessage message) { message.AssureType(); var serializedData = JsonConvert.SerializeObject(message); #if USERDATA_MODULE_DEBUG if (Debug.isDebugBuild || Application.isEditor) { Debug.Log("Commiting serialized message :: " + serializedData); } #endif var reference = FirebaseDatabase.DefaultInstance.RootReference.Child($"SharedMessages/{userId}/"); var newKey = reference.Push().Key; await reference.Child(newKey).SetRawJsonValueAsync(serializedData); }
public void ProcessMessage(AbstractSharedMessage message) { var textMessage = message as TextSharedMessage; Debug.Log("RECEIVED TEXT MESSAGE :: " + textMessage.MessageText); }
public abstract Task CommitMessage(string userId, AbstractSharedMessage message);
public async Task PushMessage(string userId, AbstractSharedMessage message) { await _storage.CommitMessage(userId, message); }
private void SelfMessagesAdded(AbstractSharedMessage obj) { NotifyListeners(obj); }