private PersistentFSMSnapshot GetPersistentFSMSnapshot(object obj) { Type type = obj.GetType(); var message = new PersistentFSMSnapshot { StateIdentifier = (string)type.GetProperty("StateIdentifier")?.GetValue(obj), Data = GetPersistentPayload(type.GetProperty("Data")?.GetValue(obj)) }; TimeSpan?timeout = (TimeSpan?)type.GetProperty("Timeout")?.GetValue(obj); if (timeout.HasValue) { message.TimeoutMillis = (long)timeout.Value.TotalMilliseconds; } return(message); }
protected bool Equals(PersistentFSMSnapshot <TD> other) { return(string.Equals(StateIdentifier, other.StateIdentifier) && EqualityComparer <TD> .Default.Equals(Data, other.Data) && Timeout.Equals(other.Timeout)); }