public override async Task <CodeAction> GetFixAsync(FixAllContext fixAllContext) { Solution newSolution; switch (fixAllContext.Scope) { case FixAllScope.Document: newSolution = await FixDocumentAsync(fixAllContext, fixAllContext.Document).ConfigureAwait(false); break; case FixAllScope.Project: newSolution = await GetProjectFixesAsync(fixAllContext, fixAllContext.Project).ConfigureAwait(false); break; case FixAllScope.Solution: newSolution = fixAllContext.Solution; var projectIds = newSolution.ProjectIds; for (int i = 0; i < projectIds.Count; i++) { newSolution = await GetProjectFixesAsync(fixAllContext, newSolution.GetProject(projectIds[i])).ConfigureAwait(false); } break; case FixAllScope.Custom: default: return(null); } return(CodeAction.Create(string.Format(MaintainabilityResources.SA1412CodeFix, await SA1412CodeFixProvider.GetEncodingNameForDocumentAsync(fixAllContext.Document).ConfigureAwait(false)), token => Task.FromResult(newSolution))); }