public async Task Start() { if (!await CanStart()) { return; } var settings = await _context.FarmSettings; var launchers = await _clientHandler.GetLaunchers(settings.ApiKey); var launcher = launchers?.FirstOrDefault(l => l.Hostname == settings.Hostname); if (launcher == null) { return; } _settingsService.ActivateFarmSettings(); var state = await GetFarmState(); state.Running = true; state.Start = _dateTime.UtcNow; state.SocketAddress = launcher.SocketAddress; await _context.SaveChangesAsync(); }