public async Task SetMode(int modeId) { var currentMode = await _persistenceService.GetMode(); if (modeId != currentMode) { var playlistTask = InitialisePlaylists(); var indexTask = _componentPlaylistTrackingService.PopulateLastTrackIndexes(); await Task.WhenAll(playlistTask, indexTask); switch (modeId) { case 0: await SetFullThrottleMode(); break; case 1: await SetNormalMode(); break; case 2: await SetFillerMode(); break; case 3: await SetEndOfNightMode(); break; } await _persistenceService.SaveMode(modeId); } }