internal Step(IApplication app, ISession session, ICallFlow flow) { Utc = app.TimeSource.UTCNow; Session = session == null ? "<null>" : "{0}({1})".Args(session.GetType().Name, session.User.ToString().TakeFirstChars(32, "..")); App = app.AppId; AppInstance = app.InstanceId; Host = Platform.Computer.HostName; Type = flow.GetType().Name; ID = flow.ID; DirectorName = flow.DirectorName; CallerAddress = flow.CallerAddress; CallerAgent = flow.CallerAgent; CallerPort = flow.CallerPort; if (flow.Items.Any()) { m_Items = new ConcurrentDictionary <string, object>(flow.Items); } }