public async Task <OccupyInstanceResult> OccupyAsync(OccupyInstance command, CancellationToken cancellationToken) { _currentState = await _currentState.OccupyAsync(this, command, cancellationToken); await repository.SetInstanceStateAsync(_currentState.State, cancellationToken); var serviceName = await repository.GetServiceUriAsync(cancellationToken); return(new OccupyInstanceResult(serviceName)); }
public override async Task <InstanceState> OccupyAsync(InstanceContext context, OccupyInstance command, CancellationToken cancellationToken) { await context.Mediator.ExecuteAsync(command, cancellationToken); return(context.InstanceStates.Get(InstanceStates.Occupied)); }
public override Task <InstanceState> OccupyAsync(InstanceContext context, OccupyInstance command, CancellationToken cancellationToken) => Task.FromResult <InstanceState>(this);
public override Task <InstanceState> OccupyAsync(InstanceContext context, OccupyInstance command, CancellationToken cancellationToken) => throw new Exception("Invalid state transition. Cannot occupy an idle service.");
public abstract Task <InstanceState> OccupyAsync(InstanceContext context, OccupyInstance command, CancellationToken cancellationToken);