public void AnalyzeAndUpdateSingle(Document document)
        {
            var codeResult = ThreadHelper.JoinableTaskFactory.Run(async() => await CodeFileAnalyzer.BuildFromDocumentAsync(document));

            CodeQueries.UpdateStatmentForFileWihoutKey(new List <List <CSharpQuery> > {
                codeResult.Queries
            });
            foreach (var generic in codeResult.Generics)
            {
                GenericMethods.Update(generic.NodeInformation.MethodInfo, generic);
            }
            OnStoreChangeHandler(ChangedFileTypeFlag.CSharp);
        }
        public async System.Threading.Tasks.Task AnalyzeAndUpdateSingleAsync(Document document)
        {
            var codeResult = await CodeFileAnalyzer.BuildFromDocumentAsync(document);

            CodeQueries.UpdateStatmentForFileWihoutKey(new List <List <CSharpQuery> > {
                codeResult.Queries
            });
            foreach (var generic in codeResult.Generics)
            {
                await GenericMethods.UpdateAsync(generic.NodeInformation.MethodInfo, generic);
            }
            OnStoreChangeHandler(ChangedFileTypeFlag.CSharp);
        }
        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);
            }
        }