Exemple #1
0
        public static void LoadFileExtracts(ICodeSearchController host, string path, IEnumerable <FlatFilePositionViewModel> filePositions)
        {
            var positions = filePositions.ToList();

            if (!positions.Any())
            {
                return;
            }

            var request = new GetFileExtractsRequest
            {
                FileName         = path,
                MaxExtractLength = host.GlobalSettings.MaxTextExtractLength,
                Positions        = positions
                                   .Select(x => new FilePositionSpan
                {
                    Position = x.Position,
                    Length   = x.Length
                })
                                   .ToList()
            };

            var uiRequest = new DispatchThreadServerRequest
            {
                Request = request,
                Id      = "FlatFilePositionViewModel-" + path,
                Delay   = TimeSpan.FromSeconds(0.0),
                OnDispatchThreadSuccess = (typedResponse) => {
                    var response = (GetFileExtractsResponse)typedResponse;
                    positions
                    .Zip(response.FileExtracts, (x, y) => new {
                        FilePositionViewModel = x,
                        FileExtract           = y
                    })
                    .Where(x => x.FileExtract != null)
                    .ForAll(x => x.FilePositionViewModel.SetTextExtract(x.FileExtract));
                }
            };

            host.DispatchThreadServerRequestExecutor.Post(uiRequest);
        }
        private void LoadFileExtracts()
        {
            var positions = GetChildren()
                            .OfType <FilePositionViewModel>()
                            .ToList();

            if (!positions.Any())
            {
                return;
            }

            var request = new GetFileExtractsRequest {
                FileName         = Path,
                MaxExtractLength = Controller.GlobalSettings.MaxTextExtractLength,
                Positions        = positions
                                   .Select(x => new FilePositionSpan {
                    Position = x.Position,
                    Length   = x.Length
                })
                                   .ToList()
            };

            var uiRequest = new UIRequest {
                Request   = request,
                Id        = "FileEntryViewModel-" + Path,
                Delay     = TimeSpan.FromSeconds(0.0),
                OnSuccess = (typedResponse) => {
                    var response = (GetFileExtractsResponse)typedResponse;
                    positions
                    .Zip(response.FileExtracts, (x, y) => new {
                        FilePositionViewModel = x,
                        FileExtract           = y
                    })
                    .Where(x => x.FileExtract != null)
                    .ForAll(x => x.FilePositionViewModel.SetTextExtract(x.FileExtract));
                }
            };

            this.Controller.UIRequestProcessor.Post(uiRequest);
        }