private void ApplyChangeLocal(RemoteDataChange change)
        {
            var fieldInfo = GetFieldInfo(change.FieldName);

            fieldInfo.SetValue(Object, change.FieldValue);
            PropertyChanged(change.FieldName);
        }
 public RemoteDataChange CreateRemoveChange(AbstractSharedMessage message)
 {
     return(RemoteDataChange.Create(
                message.FullPath,
                string.Empty,
                null,
                null));
 }
 public RemoteDataChange CreateMarkProcededChange(AbstractSharedMessage message)
 {
     return(RemoteDataChange.Create(
                string.Format("{0}/{1}", message.FullPath, nameof(message.Proceeded)),
                nameof(message.Proceeded),
                true,
                null));
 }
 public override RemoteDataChange CreateChange(string fieldName, object fieldValue)
 {
     return(RemoteDataChange.Create(
                _fullPath + fieldName,
                fieldName,
                fieldValue,
                null));
 }
 public void UpdateChildData(string fieldName, object newValue)
 {
     _storage.AddChange(RemoteDataChange.Create(
                            FullPath + fieldName,
                            fieldName,
                            newValue,
                            ApplyChangeLocal));
 }
        protected override async Task ApplyChangeRemote(RemoteDataChange change)
        {
            var changeType = change.FieldValue.GetType();

            if (changeType.IsPrimitive || change.FieldValue is String)
            {
                await _reference.Root.Child(change.FullPath).SetValueAsync(change.FieldValue);
            }
            else
            {
                await _reference.Root.Child(change.FullPath).SetRawJsonValueAsync(JsonConvert.SerializeObject(change.FieldValue));
            }
        }
Esempio n. 7
0
 public void AddChange(RemoteDataChange change)
 {
     ChangeApplied(change);
     _pendingChanges.Push(change);
 }
Esempio n. 8
0
 private void ApplyChangeOnLocalHandler(RemoteDataChange change)
 {
     _objectHandler.ApplyChangeLocal(change);
     PropertyChanged(change.FieldName);
 }
Esempio n. 9
0
 private void ChangeApplied(RemoteDataChange change)
 {
     change.ApplyCallback?.Invoke(change);
 }
Esempio n. 10
0
        //public abstract Task<TResult> PerformTransaction<TResult>(UpdateFunc<TResult, T> updateFunc) where TResult : struct;

        //public delegate TRes UpdateFunc<TRes, Tin>(object oldValue, out Tin newValue) where TRes : struct;

        protected abstract Task ApplyChangeRemote(RemoteDataChange change);
Esempio n. 11
0
        public void ApplyChangeLocal(RemoteDataChange change)
        {
            var fieldInfo = typeof(T).GetField(change.FieldName);

            fieldInfo.SetValue(Object, change.FieldValue);
        }
Esempio n. 12
0
 public async Task ApplyChange(RemoteDataChange change)
 {
     await ApplyChangeRemote(change);
 }
 public void AddChange(RemoteDataChange change)
 {
     _storage.AddChange(change);
 }