public async Task WriteStateAsync()
        {
            try
            {
                if (_isDestroyed)
                {
                    await ClearStateAsync();
                }
                else
                {
                    await Tell(BeforeWriteState.Default);

                    var state = new DependencyObjectState
                    {
                        GrainKeyString = GrainReference.ToKeyString(),
                        ValueStorage   = _valueStorage
                    };

                    await SerializeStateAsync(state);

                    ValueStorage.IsDirty = false;
                }
            }
            catch (Exception ex)
            {
                Logger.LogError(ex, ex.Message);
            }
        }
 protected override async Task SerializeStateAsync(DependencyObjectState state)
 {
     if (CanPersist())
     {
         var coll = GetStateCollection();
         var key  = GrainReference.ToKeyString();
         await coll.ReplaceOneAsync(o => o.GrainKeyString == key, state, new ReplaceOptions { IsUpsert = true });
     }
 }
Exemplo n.º 3
0
 public override Element Build(Context context, DependencyObjectState <TSubclass, TWpf> state) =>
 new WpfNative <TWpf>(element => Update(element, state));
 protected virtual Task SerializeStateAsync(DependencyObjectState state)
 {
     return(Task.CompletedTask);
 }