public ActionResult <StateDto> StartTable( TableType tableType, [FromQuery] int?simulationTime = null, [FromQuery] int philosophersCount = 10) { var timeout = simulationTime == null ? Timeout.InfiniteTimeSpan : TimeSpan.FromSeconds(simulationTime.Value); var simulationTimeCts = new CancellationTokenSource(timeout); var tableId = runnerService_.Start( tableType, philosophersCount, simulationTimeCts.Token, () => { simulationTimeCts.Dispose(); return(Task.CompletedTask); }); return(Ok(tableId)); }