public Task <int> SaveAsync <T>(T input) where T : IPayload { var tcs = new TaskCompletionSource <int>(); this.actor.SaveCompletedEvent += (object s, CallBackEventArgs e) => { if (e.Error != null) { tcs.TrySetException(e.Error); } else if (e.Cancelled) { tcs.TrySetCanceled(); } else { tcs.TrySetResult(e.Result); } }; try { var dbPayload = new DBPayload <T>(); dbPayload.Payload = input; if (this.actor.OutputChannelDisposed == true) { throw new ChannelDisposedException(new StringBuilder().Append("the OutputChannel on this actor has been Disposed, The Actor is : ").Append(this.actor.Id.ToString()).ToString()); } this.actor.SendOneMessageOfType <DBPayload <T> >(this.actor.OutRoute, dbPayload, this.actor.Serializer, this.actor.OutputChannel); if (this.actor.IsRunning == false) { Task.Run(() => { this.actor.Start <DBPayload <T> >(); }); } } catch (ChannelDisposedException e) { tcs.TrySetException(e); } return(tcs.Task); }
public int Save <T>(DBPayload <T> dBPayload) { Writeline(dBPayload.ToString()); return(1); }
public static DBPayload <T> DeserializeDBPayload <T>(string body) { DBPayload <T> pl = (DBPayload <T>)JsonConvert.DeserializeObject <DBPayload <T> >(body, new DBPayloadConverter()); return(pl); }
public string GetSerializedPayload <T>(DBPayload <T> message) { return(JsonConvert.SerializeObject(message, Formatting.None)); }
public byte[] GetBufferizedPayload <T>(DBPayload <T> message) { return(encoding.GetBytes(this.GetSerializedPayload <T>(message))); }