Пример #1
0
        private async Task <IEnumerable <ResourceEntity>?> GetSelectedResourceEntitiesAsync()
        {
            await JoinableTaskFactory.SwitchToMainThreadAsync();

            var monitorSelection = GetGlobalService(typeof(SVsShellMonitorSelection)) as IVsMonitorSelection;

            var selection = monitorSelection?.GetSelectedProjectItems();

            if (selection == null)
            {
                return(null);
            }

            var files = selection
                        .Select(item => item.GetMkDocument())
                        .ExceptNullItems()
                        .Where(file => ProjectFileExtensions.IsResourceFile(file))
                        .ToArray();

            if (!files.Any())
            {
                return(null);
            }

            var groups = await Task.WhenAll(files.Select(GetSelectedResourceEntitiesAsync)).ConfigureAwait(true);

            var entities = groups
                           .SelectMany(items => items)
                           .ToArray();

            return((entities.Length > 0) && (entities.Length == selection.Count) ? entities : null);
        }
Пример #2
0
        private async Task <IEnumerable <ResourceEntity>?> GetSelectedResourceEntitiesAsync()
        {
            await JoinableTaskFactory.SwitchToMainThreadAsync();

            var vsixCompatibility = ExportProvider.GetExportedValue <IVsixCompatibility>();

            var selectedFiles = await vsixCompatibility.GetSelectedFilesAsync().ConfigureAwait(false);

            if (!selectedFiles.Any())
            {
                return(null);
            }

            var resourceFiles = selectedFiles.Where(file => ProjectFileExtensions.IsResourceFile(file));

            var groups = await Task.WhenAll(resourceFiles.Select(GetSelectedResourceEntitiesAsync)).ConfigureAwait(true);

            var entities = groups
                           .SelectMany(items => items)
                           .ToArray();

            return((entities.Length > 0) && (entities.Length == selectedFiles.Count) ? entities : null);
        }
Пример #3
0
 protected override bool IncludeFile(string fileName)
 {
     return(ProjectFileExtensions.IsResourceFile(fileName));
 }