public async System.Threading.Tasks.Task AnalyzeAndStoreAsync(List <Document> documents) { using (MiniProfiler.Current.Step(nameof(AnalyzeAndStoreAsync))) { var codeResults = await CodeFileAnalyzer.BuildIndexerAsync(documents); var generics = codeResults.SelectMany(e => e.Generics).Select(e => new KeyValuePair <MethodInfo, ExpressionResult>(e.NodeInformation.MethodInfo, e)); await GenericMethods.AddMultipleAsync(generics.Where(e => e.Value.CanBeUsedAsQuery)); CodeQueries.AddMultipleWithoutKey(codeResults.Select(e => e.Queries).ToList()); OnStoreChangeHandler(ChangedFileTypeFlag.CSharp); } }
public async System.Threading.Tasks.Task AnalyzeAndStoreSingleAsync(Document document) { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); Debug.WriteLine($"AnalyzeAndStoreSingleAsync for file {document.Name}"); using (MiniProfiler.Current.Step(nameof(AnalyzeAndStoreSingleAsync))) { var codeResult = await CodeFileAnalyzer.BuildAsync(document); await GenericMethods.AddMultipleAsync(codeResult.Generics.Select(e => new KeyValuePair <MethodInfo, ExpressionResult>(e.NodeInformation.MethodInfo, e))); CodeQueries.AddWithoutKey(codeResult.Queries); OnStoreChangeHandler(ChangedFileTypeFlag.CSharp); } }