public void StartWatchingAll()
        {
            _watcher = new FileChangePollingWatcher();
            _fileGraph.AllFiles().Each(file =>
            {
                _watcher.WatchFile(file.FullPath, () => _listener.Changed(file));
            });

            _watcher.StartWatching(_settings.MonitoringIntervalTime);
        }
        private IEnumerable <string> findUrls()
        {
            foreach (var chain in _graph.Behaviors)
            {
                if (chain.IsPartialOnly)
                {
                    continue;
                }
                if (chain.Route == null)
                {
                    continue;
                }
                if (!chain.Route.RespondsToMethod("GET"))
                {
                    continue;
                }


                if (chain.Route.Rank != 0)
                {
                    continue;
                }
                if (chain.InputType() != null && chain.InputType().CanBeCastTo <ResourcePath>())
                {
                    continue;
                }

                if (chain.Calls.Any(x => x.HandlerType.Assembly == Assembly.GetExecutingAssembly()))
                {
                    if (!chain.Calls.Any(x => x.HasAttribute <ExportAttribute>()))
                    {
                        continue;
                    }
                }

                var pattern = GetPattern(chain);

                if (ShouldIgnore(pattern))
                {
                    continue;
                }

                yield return(pattern);

                foreach (var route in chain.AdditionalRoutes)
                {
                    yield return(route.Pattern);
                }
            }

            foreach (var assetFile in _assetFiles.AllFiles())
            {
                if (assetFile.Name.Contains("diagnostics"))
                {
                    continue;
                }
                if (assetFile.Name.Contains("slickgrid"))
                {
                    continue;
                }

                yield return(AssetUrls.DetermineRelativeAssetUrl(assetFile.Folder, assetFile.Name));
            }
        }