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);
        }
Esempio n. 6
0
        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);
 }