Beispiel #1
0
        static void Main(string[] args)
        {
            const string url = "http://localhost:8080";

            XmlConfiguration configuration = XmlConfiguration.LoadFrom(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\AllGreen\\AllGreen\\AllGreen.config");

            TinyIoCContainer resourceResolver = new TinyIoCContainer();

            resourceResolver.Register <IConfiguration>(configuration);
            CompositeWebResources webResources = new CompositeWebResources();
            DynamicScriptList     scriptList   = new DynamicScriptList(configuration.RootFolder, configuration.ServedFolderFilters, configuration.ExcludeServedFolderFilters, new FileSystem());

            webResources.Add(new WebServerResources(scriptList));
            webResources.Add(new FileSystemResources(configuration.RootFolder, scriptList, new FileSystem()));
            resourceResolver.Register <IWebResources>(webResources);
            resourceResolver.Register <IRunnerHub, RunnerHub>();
            resourceResolver.Register <IRunnerBroadcaster>((ioc, npo) => new RunnerBroadcaster(GlobalHost.ConnectionManager.GetHubContext <RunnerHub>().Clients));
            resourceResolver.Register <IReporter, ConsoleReporter>();

            using (WebApp.Start(url, appBuilder => new OwinStartup(resourceResolver).Configuration(appBuilder)))
            {
                System.Console.WriteLine("Server running at " + url);
                string command = "";
                while (command != "x")
                {
                    command = System.Console.ReadLine();
                    resourceResolver.Resolve <IRunnerBroadcaster>().StartAll();
                }
            }
        }
Beispiel #2
0
        protected void Application_Startup(object sender, StartupEventArgs e)
        {
            //XmlConfiguration configuration = XmlConfiguration.LoadFrom(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\AllGreen\\AllGreen\\AllGreen.config");
            XmlConfiguration configuration = GetDummyConfig();

            TinyIoCContainer resourceResolver = new TinyIoCContainer();

            resourceResolver.Register <IConfiguration>(configuration);
            CompositeWebResources webResources = new CompositeWebResources();
            DynamicScriptList     scriptList   = new DynamicScriptList(configuration.RootFolder, configuration.ServedFolderFilters, configuration.ExcludeServedFolderFilters, new FileSystem());

            webResources.Add(new WebServerResources(scriptList));
            webResources.Add(new FileSystemResources(configuration.RootFolder, scriptList, new FileSystem()));
            resourceResolver.Register <IWebResources>(webResources);
            resourceResolver.Register <IRunnerHub, RunnerHub>();
            resourceResolver.Register <IRunnerBroadcaster>((ioc, npo) => new RunnerBroadcaster(GlobalHost.ConnectionManager.GetHubContext <RunnerHub>().Clients));
            resourceResolver.Register <IServerStarter>(new OwinServerStarter(resourceResolver));
            resourceResolver.Register <IFileViewer, ExternalFileViewer>();
            resourceResolver.Register <IFileLocationParser>(new FileLocationParser(configuration.ServerUrl, webResources));
            resourceResolver.Register <IFileLocationMapper>(new JsMapFileMapper(new FileSystem()));
            resourceResolver.Register <IClipboard>(new ClipboardProxy());

            _FileWatcher = new FileWatcher(resourceResolver, configuration.WatchedFolderFilters.Select(ff =>
                                                                                                       new FolderWatcher(Path.GetFullPath(Path.Combine(configuration.RootFolder, ff.Folder)), ff.FilePattern, ff.IncludeSubfolders)));

            MainWindow mainWindow = new MainWindow()
            {
                DataContext = new MainViewModel(resourceResolver)
            };

            mainWindow.Show();
        }
        public void SubfolderSearchAutomatic()
        {
            SetupGetFiles("Scripts", @"*.js", true, new string[] { @"file1.js", @"file2.js", @"Sub\file3.js" });

            FolderFilter[] folderFilterList = new FolderFilter[] { new FolderFilter {
                                                                       Folder = @"Scripts", FilePattern = "*.js", IncludeSubfolders = true
                                                                   } };
            DynamicScriptList dynamicFileList = new DynamicScriptList(@"C:\www", folderFilterList.ToList(), new List <FolderFilter>(), _FileLocatorMock.Object);

            dynamicFileList.Scripts.ShouldAllBeEquivalentTo(new string[] { @"Scripts/file1.js", @"Scripts/file2.js", @"Scripts/Sub/file3.js" });
        }
        public void MultipleFolderFilters()
        {
            SetupGetFiles("Scripts", @"*.js", false, new string[] { @"file1.js", @"file2.js" });
            SetupGetFiles(@"Scripts\Sub", @"*.js", false, new string[] { @"file3.js" });

            FolderFilter[] folderFilterList = new FolderFilter[] { new FolderFilter {
                                                                       Folder = @"Scripts", FilePattern = "*.js", IncludeSubfolders = false
                                                                   }, new FolderFilter {
                                                                       Folder = @"Scripts\Sub", FilePattern = "*.js", IncludeSubfolders = false
                                                                   } };
            DynamicScriptList dynamicFileList = new DynamicScriptList(@"C:\www", folderFilterList.ToList(), new List <FolderFilter>(), _FileLocatorMock.Object);

            dynamicFileList.Scripts.ShouldAllBeEquivalentTo(new string[] { @"Scripts/file1.js", @"Scripts/file2.js", @"Scripts/Sub/file3.js" });
        }
        public void EmptyListTest()
        {
            DynamicScriptList dynamicFileList = new DynamicScriptList(@"C:\www", new List <FolderFilter>(), new List <FolderFilter>(), _FileLocatorMock.Object);

            dynamicFileList.Scripts.ShouldAllBeEquivalentTo(new string[0]);
        }