예제 #1
0
        protected JourneyInstance <TState> CreateJourneyInstance <TState>(
            string journeyName,
            Action <KeysBuilder> configureKeys,
            TState state,
            IReadOnlyDictionary <object, object> properties = null,
            string uniqueKey = null)
        {
            var keysBuilder = new KeysBuilder();

            configureKeys(keysBuilder);

            if (uniqueKey != null)
            {
                keysBuilder.With("ffiid", uniqueKey);
            }

            var keys = keysBuilder.Build();

            var instanceId = new JourneyInstanceId(journeyName, keys);

            var instanceStateProvider = Factory.Services.GetRequiredService <IUserInstanceStateProvider>();

            return((JourneyInstance <TState>)instanceStateProvider.CreateInstance(
                       journeyName,
                       instanceId,
                       typeof(TState),
                       state,
                       properties));
        }
예제 #2
0
        protected JourneyInstance <TState> GetJourneyInstance <TState>(
            string journeyName,
            Action <KeysBuilder> configureKeys,
            string uniqueKey = null)
        {
            var keysBuilder = new KeysBuilder();

            configureKeys(keysBuilder);

            if (uniqueKey != null)
            {
                keysBuilder.With("ffiid", uniqueKey);
            }

            var keys = keysBuilder.Build();

            var instanceId = new JourneyInstanceId(journeyName, keys);

            var instanceStateProvider = Factory.Services.GetRequiredService <IUserInstanceStateProvider>();

            return((JourneyInstance <TState>)instanceStateProvider.GetInstance(instanceId));
        }