private async Task ImportConfigurationsFromFileAsync(StorageFile storageFile) { ServiceConfiguration[] configurations; try { configurations = await _configurationStore.GetConfigurationsFromFileAsync(storageFile); } catch (Exception ex) { await _dialog.ShowAsync($"Could not read data because {ex.Message}", "Import Error"); return; } var sb = new StringBuilder(); sb.AppendLine($"Found configurations for {configurations.Length} service{GetPluralS(configurations)}. "); foreach (ServiceConfiguration configuration in configurations) { var actions = configuration.ActionGroups.SelectMany(e => e.Actions).ToArray(); sb.AppendLine($" - {configuration.Name} ({actions.Length} action{GetPluralS(actions)})"); } var message = "Do you want to replace the currently configured services, or have the new services added to to them?"; const string title = "File content parsed correctly"; #if ARM sb.Append("Do you want to proceed?"); string answer = await _dialog.ShowAsync(sb.ToString(), title, "Import", "Cancel"); if (answer == "Cancel") { return; } answer = await _dialog.ShowAsync(message, "Import Configurations", "Replace", "Add"); #endif #if X86X64 sb.Append(message); string answer = await _dialog.ShowAsync(sb.ToString(), title, "Replace", "Add", "Cancel"); if (answer == "Cancel") { return; } #endif if (answer == "Replace") { Configurations.ClearAndAddRange(configurations); } else { Configurations.AddRange(configurations); } await StoreDataAsync(); }