/// <summary> /// Configure mapper and finds process manager data using configured ProcessManagerFinder /// </summary> /// <param name="message"></param> /// <returns></returns> public virtual IPersistanceData <T> FindProcessManagerData(Message message) { // FindProcessManagerData is always called on new instance of ProcessManager<T> _mapper = new ProcessManagerPropertyMapper(); ConfigureHowToFindProcessManager(_mapper); // Default mapping _mapper.ConfigureMapping <IProcessManagerData, Message>(m => m.CorrelationId, pm => pm.CorrelationId); return(ProcessManagerFinder.FindData <T>(_mapper, message)); }
protected virtual void RequestTimeout(TimeSpan timeout) { var timeoutData = new TimeoutData { Destination = Context.Headers["DestinationAddress"].ToString(), ProcessManagerId = Data.CorrelationId, Headers = Context.Headers, Id = Guid.NewGuid(), Time = DateTime.UtcNow.Add(timeout) }; ProcessManagerFinder.InsertTimeout(timeoutData); }