Esempio n. 1
0
 public InitialPositionDecorator(IPositionManager positionManager, StartFromPosition startFromPosition)
 {
     _positionManager   = positionManager ?? throw new ArgumentNullException(nameof(positionManager));
     _startFromPosition = startFromPosition;
 }
Esempio n. 2
0
    public static void SetInitialPosition(this StandardConfigurer <IPositionManager> configurer, StartFromPosition startFromPosition)
    {
        var registrar = StandardConfigurer.Open(configurer);

        if (registrar.Other <ExplicitlySetInitialPosition>().HasService())
        {
            throw new InvalidOperationException($"Cannot set resume position to {startFromPosition}, because it has already been set!");
        }

        registrar.Other <ExplicitlySetInitialPosition>().Register(c => new ExplicitlySetInitialPosition(startFromPosition));

        registrar.Decorate(c => new InitialPositionDecorator(c.Get <IPositionManager>(), startFromPosition));
    }
Esempio n. 3
0
 public ExplicitlySetInitialPosition(StartFromPosition position) => Position = position;