public async Task ExecuteAsync(Func <string, Task> openFunc) { try { var localConfigPath = await this.configFileProvider.TryGetLocalConfigAsync(); if (string.IsNullOrWhiteSpace(localConfigPath)) { return; } if (fileAccessor.Exists(localConfigPath)) { await openFunc(localConfigPath); } else { if (popupManager.Confirm("There is no local configuration file yet, do you want to create it for this repository ?", "Init local config file")) { fileAccessor.CopyFile(ConfigFileProvider.ConfigPathUserProfile, localConfigPath); await openFunc(localConfigPath); } } } catch (Exception ex) { popupManager.Show(ex.ToString(), "An error occured"); } }