private TreeNodeViewModel CreateWebServerNode(TreeNodeViewModel parentNode, WebServerSettings settings)
        {
            TreeNodeViewModel treeNode = new TreeNodeViewModel()
            {
                IsExpanded = false,
                NodeIcon = WEB_SERVICE_ICON,
                NodeText = settings.Name,
                NodeToolTip = settings.HttpHost,
                NodePayload = settings
            };
            treeNode.ContextMenuItems.Add(new MenuItemViewModel()
            {
                MenuItemHeader = "Configure settings",
                MenuItemIcon = SETTINGS_FILE_ICON,
                MenuItemCommand = new RelayCommand(ConfigureWebServer),
                MenuItemPayload = treeNode
            });
            treeNode.ContextMenuItems.Add(new MenuItemViewModel()
            {
                MenuItemHeader = "Create new catalog",
                MenuItemIcon = ADD_CATALOG_ICON,
                MenuItemCommand = new RelayCommand(CreateWebCatalog),
                MenuItemPayload = treeNode
            });
            treeNode.ContextMenuItems.Add(new MenuItemViewModel()
            {
                MenuItemHeader = "Create new script",
                MenuItemIcon = DATABASE_SCRIPT_ICON,
                MenuItemCommand = new RelayCommand(CreateWebScript),
                MenuItemPayload = treeNode
            });
            parentNode.TreeNodes.Add(treeNode);

            return treeNode;
        }
        private void SaveWebServerScript(WebServerSettings settings, string json)
        {
            string catalogPath = Path.Combine(Module.WebServersCatalogPath, settings.Name);
            DirectoryInfo catalog = new DirectoryInfo(catalogPath);
            if (!catalog.Exists)
            {
                MessageBox.Show($"Catalog \"{catalogPath}\" is not found !", "1C#", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            string settingsFilePath = Path.Combine(catalog.FullName, SETTINGS_FILE_NAME);
            if (!File.Exists(settingsFilePath))
            {
                MessageBox.Show($"File \"{settingsFilePath}\" is not found !", "1C#", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            WebServerSettings newSettings = JsonSerializer.Deserialize<WebServerSettings>(json);
            string newCatalogPath = Path.Combine(Module.WebServersCatalogPath, newSettings.Name);
            if (Directory.Exists(newCatalogPath))
            {
                MessageBox.Show($"Catalog \"{newCatalogPath}\" already exists !", "1C#", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            settings.Name = newSettings.Name;
            settings.HttpHost = newSettings.HttpHost;
            SaveWebServerSettings(settings, settingsFilePath);
            Directory.Move(catalogPath, newCatalogPath);

            TreeNodeViewModel treeNode = FindTreeNode(settings);
            if (treeNode != null)
            {
                treeNode.NodeText = settings.Name;
                treeNode.NodeToolTip = settings.HttpHost;
            }
        }
        private void AttachWebServer(object parameter)
        {
            if (!(parameter is TreeNodeViewModel parentNode)) return;

            InputStringDialog dialog = new InputStringDialog()
            {
                Title = "Web server name"
            };
            _ = dialog.ShowDialog();
            if (dialog.Result == null) return;

            string catalogName = Path.Combine(Module.WebServersCatalogPath, (string)dialog.Result);
            DirectoryInfo catalog = new DirectoryInfo(catalogName);
            if (catalog.Exists)
            {
                MessageBox.Show($"Catalog \"{catalogName}\" already exists !", "1C#", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                return;
            }
            catalog.Create();

            WebServerSettings settings = new WebServerSettings()
            {
                Name = catalog.Name
            };
            string settingsFilePath = Path.Combine(catalog.FullName, SETTINGS_FILE_NAME);
            SaveWebServerSettings(settings, settingsFilePath);

            TreeNodeViewModel treeNode = CreateWebServerNode(parentNode, settings);
            treeNode.IsExpanded = true;
        }
Beispiel #4
0
        public static void SendPOST()
        {
            var ss = new WebServerSettings()
            {
                Port   = 9090,
                UseSSL = false,
                UseBasicAuthorization = false
            };
            var rs = new RequestSettings()
            {
                ServerAddress         = "localhost:9090",
                TimeoutMSec           = 5000,
                UseSSL                = false,
                UseBasicAuthorization = false,
                UserId                = null,
                Password              = null
            };

            using (var server = new TestWebServer())
            {
                server.Settings = ss;
                server.Start();

                var req = new TestPOSTRequest(rs);
                var ok  = req.Process();
                if (!ok)
                {
                    throw new ApplicationException("SendPOST() failed. LastError=" + req.LastError);
                }
            }
        }
        public QueryEditorViewModel(IShell shell, WebServerSettings settigns, string fileFullPath, IMetadataService metadata, IScriptingService scripting)
        {
            if (shell == null)
            {
                throw new ArgumentNullException(nameof(shell));
            }
            if (settigns == null)
            {
                throw new ArgumentNullException(nameof(settigns));
            }
            if (scripting == null)
            {
                throw new ArgumentNullException(nameof(scripting));
            }
            if (string.IsNullOrWhiteSpace(fileFullPath))
            {
                throw new ArgumentNullException(nameof(fileFullPath));
            }

            Shell        = shell;
            Settings     = settigns;
            Metadata     = metadata;
            Scripting    = scripting;
            FileFullPath = fileFullPath;

            ExecuteCommand   = new RelayCommand(Execute);
            TranslateCommand = new RelayCommand(Translate);
        }
        private void TranslateScript(object parameter)
        {
            if (!(parameter is TreeNodeViewModel parentNode)) return;

            WebServerSettings settings = GetWebServerSettingsForScriptNode(parentNode);
            if (settings == null)
            {
                MessageBox.Show("Web server settings not found!", "1C#", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }

            string scriptName = parentNode.NodeText;
            string catalogPath = (string)parentNode.NodePayload;
            string scriptFullName = Path.Combine(Module.WebServersCatalogPath, catalogPath, scriptName);
            if (!File.Exists(scriptFullName))
            {
                MessageBox.Show($"Script \"{scriptFullName}\" not found !", "1C#", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                return;
            }
            // read script file
            string script = File.ReadAllText(scriptFullName);

            // open script for execution
            QueryEditorView view = new QueryEditorView()
            {
                DataContext = new QueryEditorViewModel(Module.Shell, settings, scriptFullName, MetadataService, ScriptingService) { QueryScript = script }
            };
            Module.Shell.AddTabItem(scriptName, view);
        }
Beispiel #7
0
        public override string Start()
        {
            PhysicalDirectory.Refresh();
            if (!PhysicalDirectory.Exists)
            {
                throw new DirectoryNotFoundException(PhysicalDirectory.FullName);
            }

            SetUserPermission(Users, PhysicalDirectory);

            _settings = new WebServerSettings();
            _settings.RootPhysicalPath = PhysicalDirectory.FullName;

            using (var server = new WebServerIIS(_settings))
            {
                server.Start();
                var application = server.DefaultWebSite.Applications.Add("/" + VirtualPath, PhysicalDirectory.FullName);
                server.ServerManager.CommitChanges();

                Thread.Sleep(IISDelay);

                return server.DefaultWebSite.GetHttpVirtualPath() + application.Path;
            }

        }
Beispiel #8
0
        public static void SendPOST_AuthFailed()
        {
            var ss = new WebServerSettings()
            {
                Port   = 9090,
                UseSSL = false,
                UseBasicAuthorization = true
            };
            var rs = new RequestSettings()
            {
                ServerAddress         = "localhost:9090",
                TimeoutMSec           = 5000,
                UseSSL                = false,
                UseBasicAuthorization = true,
                UserId                = "test",
                Password              = "******"
            };

            using (var server = new TestWebServer())
            {
                server.Settings = ss;
                server.Start();

                var req = new TestPOSTRequest(rs);
                var ok  = req.Process();
                if (ok)
                {
                    throw new ApplicationException("SendPOST()_AuthFailed failed");
                }
                if (string.IsNullOrEmpty(req.LastError))
                {
                    throw new ApplicationException("SendPOST()_AuthFailed failed");
                }
            }
        }
 private WebServerSettings LoadWebServerSettings(string settingsFilePath)
 {
     byte[] json = File.ReadAllBytes(settingsFilePath);
     Utf8JsonReader reader = new Utf8JsonReader(json);
     WebServerSettings settings = JsonSerializer.Deserialize<WebServerSettings>(ref reader);
     return settings;
 }
Beispiel #10
0
        private void EnsureServer(DocumentReference serverLocation)
        {
            if (this.serverHandle.HasValue && !this.webServerService.IsServerReachable(this.serverHandle.Value, SilverlightProject.CassiniTimeout))
            {
                this.webServerService.StopBrowsingSession(this.serverHandle.Value);
                this.serverHandle = null;
            }
            ISolution currentSolution = base.Services.ProjectManager().CurrentSolution;

            if (!this.serverHandle.HasValue && currentSolution != null)
            {
                WebServerSettings webServerSetting = new WebServerSettings(serverLocation.Path);
                object            projectProperty  = currentSolution.SolutionSettingsManager.GetProjectProperty(this, "Port");
                if (projectProperty is int && this.IsPortAvailable((int)projectProperty))
                {
                    webServerSetting.Port = (int)projectProperty;
                }
                this.serverHandle = new int?(this.webServerService.StartServer(webServerSetting));
            }
            if (this.serverHandle.HasValue && currentSolution != null)
            {
                string sessionAddress = this.webServerService.GetSessionAddress(this.serverHandle.Value);
                if (!string.IsNullOrEmpty(sessionAddress))
                {
                    Uri uri = new Uri(sessionAddress, UriKind.Absolute);
                    if (uri.Port >= 0)
                    {
                        currentSolution.SolutionSettingsManager.SetProjectProperty(this, "Port", uri.Port);
                    }
                }
            }
        }
Beispiel #11
0
        static bool StartServer()
        {
            if (started)
            {
                return(false);
            }
            try
            {
                WebServerSettings webSettings = (WebServerSettings)ConfigurationSettings.GetConfig("Xeon");
                srv = new Netron.Xeon.WebServer(webSettings.ServerPort);


#if DEBUG
                //add static pages in flat format, you can use embedded resources as well, see below
                //			string sPath = Path.GetDirectoryName(Application.ExecutablePath);
                //			sPath = Path.Combine(sPath, @"..\..\view");
                //			sPath = Path.GetFullPath(sPath);

                ContentLocationResolver clr = new ContentLocationResolver(webSettings.StaticContent, "");
                srv.AddResolver(clr, 10, 20);

                XsltServletPage.DebugReload = webSettings.XmlDebugReload;
                //sPath = Path.GetFullPath(Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), @"..\xmldeb"));
                XsltServletPage.XMLDumpPath = webSettings.XmlDumpPath;
#else
                EmbeddedLocationResolver elr = new EmbeddedLocationResolver(Assembly.GetExecutingAssembly(), "ImageViewerExample.view", "view");
                srv.AddResolver(elr, 10, 20);
#endif

                EmbeddedLocationResolver elr = new EmbeddedLocationResolver(Assembly.GetAssembly(typeof(EmbeddedLocationResolver)), "Netron.Neon.Actinium.Xeon.Resources", "Resources");
                srv.AddResolver(elr, 10, 20);

                //add dynamic content
                ServletResolver sr = new ServletResolver();

                //could be a separate assembly, here the resolvers are in the control library
                string[] assems = webSettings.Servlets;
                Assembly ass;
                for (int k = 0; k < assems.Length; k++)
                {
                    ass = Assembly.LoadFile(assems[k]);
                    sr.AddAllPages(ass);
                }
                srv.AddResolver(sr, 2, 10);                 //10,20

                MyComputerResolver res = new MyComputerResolver();
                srv.AddResolver(res, 10, 20);

                srv.Start();
                started = true;
                return(true);
            }
            catch (Exception exc)
            {
                System.Diagnostics.Trace.WriteLine("The exception causing the boot process to stop was:\n" + exc.Message, "Critical");

                return(false);
            }
        }
 private TreeNodeViewModel FindTreeNode(WebServerSettings settings)
 {
     foreach (TreeNodeViewModel treeNode in RootNode.TreeNodes)
     {
         if (treeNode.NodePayload == settings) return treeNode;
     }
     return null;
 }
 internal static void Initialize()
 {
     IConfigurationManager configurationManager = new ConfigurationManagerWrapper();
     IWebProjectPathFinder webProjectPathFinder = new WebProjectPathFinder();
     IWebServerSettings webServerSettings = new WebServerSettings(configurationManager, webProjectPathFinder);
     WebServerFactory.Initialize(webServerSettings);
     WebServerFactory.RegisterWebServer<IISExpressWebServer>();
     WebServerFactory.RegisterWebServer<RemoteWebServer>();
 }
        internal static void Initialize()
        {
            IConfigurationManager configurationManager = new ConfigurationManagerWrapper();
            IWebProjectPathFinder webProjectPathFinder = new WebProjectPathFinder();
            IWebServerSettings    webServerSettings    = new WebServerSettings(configurationManager, webProjectPathFinder);

            WebServerFactory.Initialize(webServerSettings);
            WebServerFactory.RegisterWebServer <IISExpressWebServer>();
            WebServerFactory.RegisterWebServer <RemoteWebServer>();
        }
 public static void CheckProperties(WebServerSettings settings)
 {
     TestUtilities.TestProperty(settings, "AuthenticationScheme", AuthenticationSchemes.Anonymous, AuthenticationSchemes.Basic);
     TestUtilities.TestProperty(settings, "AutoStartUPnP", false);
     TestUtilities.TestProperty(settings, "BasicAuthenticationUser", null, "Bb");
     TestUtilities.TestProperty(settings, "BasicAuthenticationPasswordHash", null, new Hash());
     TestUtilities.TestProperty(settings, "EnableUPnp", false);
     TestUtilities.TestProperty(settings, "IsOnlyInternetServerOnLan", true);
     TestUtilities.TestProperty(settings, "UPnpPort", 80, 99);
 }
Beispiel #16
0
 public MockWebServer(WebServerSettings settings, Dependencies dependencies)
 {
     _type = "MockWebServer";
     if (dependencies != null)
     {
         _fileSystem            = dependencies.FileSystem;
         _environmentSystem     = dependencies.EnvironmentSystem;
         _processRunner         = dependencies.ProcessRunner;
         _serverManagerProvider = dependencies.ServerManagerProvider;
     }
 }
 private byte[] SerializeWebServerSettings(WebServerSettings settings)
 {
     // do not encode any characters for web transfer
     JavaScriptEncoder encoder = JavaScriptEncoder.Create(new UnicodeRange(0, 0xFFFF)); // 65535
     JsonSerializerOptions options = new JsonSerializerOptions()
     {
         Encoder = encoder,
         WriteIndented = true
     };
     return JsonSerializer.SerializeToUtf8Bytes(settings, options);
 }
Beispiel #18
0
 public MockWebServer(WebServerSettings settings, Dependencies dependencies)
 {
     _type = "MockWebServer";
     if (dependencies != null)
     {
         _fileSystem = dependencies.FileSystem;
         _environmentSystem = dependencies.EnvironmentSystem;
         _processRunner = dependencies.ProcessRunner;
         _serverManagerProvider = dependencies.ServerManagerProvider;
     }
 }
        public static void CheckProperties(WebServerSettings settings)
        {
            Assert.AreEqual(0, settings.BasicAuthenticationUserIds.Count);

            TestUtilities.TestProperty(settings, r => r.AuthenticationScheme, AuthenticationSchemes.Anonymous, AuthenticationSchemes.Basic);
            TestUtilities.TestProperty(settings, r => r.AutoStartUPnP, false);
            TestUtilities.TestProperty(settings, r => r.BasicAuthenticationUser, null, "Bb");
            TestUtilities.TestProperty(settings, r => r.BasicAuthenticationPasswordHash, null, new Hash());
            TestUtilities.TestProperty(settings, r => r.ConvertedUser, false);
            TestUtilities.TestProperty(settings, r => r.EnableUPnp, false);
            TestUtilities.TestProperty(settings, r => r.IsOnlyInternetServerOnLan, true);
            TestUtilities.TestProperty(settings, r => r.UPnpPort, 80, 99);
        }
Beispiel #20
0
        public void MultipleBrowsersTest()
        {
            // Arrange
            const string webSiteName = "TestEasyWAP";

            // Create server object
            WebServerSettings settings = new WebServerSettings
            {
                HostName         = Environment.MachineName,                             // machine anme or empty (in this case localhost will be used)
                RootPhysicalPath = TestEasyHelpers.Tools.GetUniqueTempPath(webSiteName) // needed only when web server type is IISExpress
            };

            WebServer          server  = WebServer.Create("IISExpress", settings);
            WebApplicationInfo appInfo = server.CreateWebApplication(webSiteName);

            server.DeployWebApplication(appInfo.Name, new List <DeploymentItem>
            {
                new DeploymentItem {
                    Type = DeploymentItemType.Directory, Path = webSiteName
                }
            });
            server.BuildWebApplication(webSiteName);

            // create browser object
            using (BrowserManager browserManager = new BrowserManager())
            {
                List <IWebDriver> myBrowsers = new List <IWebDriver>
                {
                    browserManager.CreateBrowser(remote: false),
                    browserManager.CreateBrowser(remote: false),
                    browserManager.CreateBrowser(remote: false)
                };

                foreach (var browser in myBrowsers)
                {
                    // Act
                    browser.Navigate().GoToUrl(appInfo.VirtualPath + "/SamplePostWebForm.aspx");

                    browser.FindElement(By.Id("Button1")).Click();
                    browser.WaitForPageLoaded();


                    // Assert
                    Assert.AreEqual("[Clicked!]", browser.FindElement(By.Id("TextBox1")).GetAttribute("value"));
                }
            }
        }
        private void CreateWebScript(object parameter)
        {
            if (!(parameter is TreeNodeViewModel parentNode)) return;

            WebServerSettings settings = GetWebServerSettingsForScriptNode(parentNode);
            if (settings == null)
            {
                MessageBox.Show("Web server settings not found!", "1C#", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }

            // ask for query file name
            InputStringDialog dialog = new InputStringDialog()
            {
                Title = "Script name"
            };
            _ = dialog.ShowDialog();
            if (dialog.Result == null) return;

            string scriptName = (string)dialog.Result;
            string catalogPath;
            if (parentNode.NodePayload is WebServerSettings)
            {
                catalogPath = parentNode.NodeText;
            }
            else
            {
                catalogPath = (string)parentNode.NodePayload;
            }
            string scriptFullName = Path.Combine(Module.WebServersCatalogPath, catalogPath, $"{scriptName}.qry");
            if (File.Exists(scriptFullName))
            {
                MessageBox.Show($"Script \"{scriptFullName}\" already exists !", "1C#", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                return;
            }
            // create query file on the disk
            _ = File.Create(scriptFullName);

            CreateScriptNode(parentNode, $"{scriptName}.qry");

            // open script for editing
            QueryEditorView view = new QueryEditorView()
            {
                DataContext = new QueryEditorViewModel(Module.Shell, settings, scriptFullName, MetadataService, ScriptingService) { QueryScript = "" }
            };
            Module.Shell.AddTabItem($"{scriptName}.qry", view);
        }
Beispiel #22
0
        /// <summary>
        /// Deserializes the data.
        /// </summary>
        private void DeserializeData()
        {
            if (File.Exists(this.CurrentNotificationSettingsPath + @"\" + _notificationSettingsFileName))
            {
                this.NotificationData =
                    this._xmlSerializer.Desirialize(this.CurrentNotificationSettingsPath + @"\" +
                                                    _notificationSettingsFileName);
            }


            if (File.Exists(this.CurrentNotificationSettingsPath + @"\" + _webServerXmlSerilaizationFile))
            {
                this.WebServerSettings =
                    this._xmlSerializerWebserverSettings.Desirialize(this.CurrentNotificationSettingsPath + @"\" +
                                                                     _webServerXmlSerilaizationFile);
            }
        }
Beispiel #23
0
            public void WhenCreate_IfCustomWebserverAndWebSiteProvided_ShouldCreate()
            {
                // Arrange
                _mock.MockWebServer()
                .MockWebServerInstantiateFromCurrentAssembly()
                .MockWebServerCreateWithWebSiteProvided()
                .MockWebServerCreate_RemoteFalse();
                TestEasyHelpers.Tools = _mock.ToolsHelper.Object;

                // Act
                var settings = new WebServerSettings();
                var server   = WebServer.Create(_mock.MockWebServerName, _mock.MockCreateWebSiteName, settings, _dependencies);

                // Assert
                Assert.Equal(_mock.MockWebServerName, server.Type);
                Assert.Equal(_mock.MockCreateWebSiteName, settings.WebAppName);
                Assert.Equal("localhost", settings.HostName);
                Assert.Equal(100000, settings.StartupTimeout);
            }
Beispiel #24
0
        public WebServer CreateWebServer(string websiteName = "")
        {
            var webServerType = (WebServerType)Enum.Parse(typeof(WebServerType), TestEasyConfig.WebServer.Type);

            if (TestEasyConfig.Client.Remote && webServerType == WebServerType.IISExpress)
            {
                throw new NotSupportedException("For tests using remote browsers, IISExpress web server type is not supported at this moment.");
            }

            var settings = new WebServerSettings
            {
                HostName = TestEasyConfig.Client.Remote ? Environment.MachineName : "",
                RootPhysicalPath = (webServerType == WebServerType.IISExpress)
                    ? TestEasyUtils.GetUniqueTempPath(websiteName)
                    : ""
            };

            return WebServer.Create(webServerType, settings);
        }
Beispiel #25
0
        public WebServer CreateWebServer(string websiteName = "")
        {
            var webServerType = (WebServerType)Enum.Parse(typeof(WebServerType), TestEasyConfig.WebServer.Type);

            if (TestEasyConfig.Client.Remote && webServerType == WebServerType.IISExpress)
            {
                throw new NotSupportedException("For tests using remote browsers, IISExpress web server type is not supported at this moment.");
            }

            var settings = new WebServerSettings
            {
                HostName         = TestEasyConfig.Client.Remote ? Environment.MachineName : "",
                RootPhysicalPath = (webServerType == WebServerType.IISExpress)
                    ? TestEasyUtils.GetUniqueTempPath(websiteName)
                    : ""
            };

            return(WebServer.Create(webServerType, settings));
        }
Beispiel #26
0
        public void CustomServerAndBrowserUsingConfigTest()
        {
            // Arrange
            const string webSiteName = "TestEasyWAP";

            // Create server using Config settings
            WebServerSettings settings = new WebServerSettings
            {
                HostName         = TestEasyConfig.Instance.Client.Remote ? Environment.MachineName : "",
                RootPhysicalPath = (TestEasyConfig.Instance.WebServer.Type.Equals("IISExpress", StringComparison.InvariantCultureIgnoreCase))
                    ? TestEasyHelpers.Tools.GetUniqueTempPath(webSiteName)
                    : ""
            };

            WebServer          server  = WebServer.Create(TestEasyConfig.Instance.WebServer.Type, settings);
            WebApplicationInfo appInfo = server.CreateWebApplication(webSiteName);

            server.DeployWebApplication(appInfo.Name, new List <DeploymentItem>
            {
                new DeploymentItem {
                    Type = DeploymentItemType.Directory, Path = webSiteName
                }
            });
            server.BuildWebApplication(webSiteName);

            // create browser object using config settings
            using (var browserManager = new BrowserManager())
            {
                var browser = browserManager.CreateBrowser();

                // Act
                browser.Navigate().GoToUrl(appInfo.VirtualPath + "/SamplePostWebForm.aspx");

                browser.FindElement(By.XPath("//input[@name='Button1']")).Click();
                browser.WaitForPageLoaded();

                // Assert
                Assert.AreEqual("[Clicked!]", browser.FindElement(By.Id("TextBox1")).GetAttribute("value"));
            }
        }
Beispiel #27
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SettingsViewModel" /> class.
        /// </summary>
        public SettingsViewModel()
        {
            this.CurrentAssemblyPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            this._xmlSerializer = new XmlNotificationDataSerializerService();
            this._xmlSerializerWebserverSettings = new XmlWebServerSettingsSerializerService();

            this.NotificationData = new NotificationData();

            this._webServerSettings = new WebServerSettings();

            if (CurrentAssemblyPath != null)
            {
                this.CurrentNotificationSettingsPath = Path.Combine(CurrentAssemblyPath, "Settings");
                this.CurrentWebRootpath = Path.Combine(CurrentAssemblyPath, "Webroot");
            }

            this.SerializeDataCommand = new ActionCommand(this.SerializeData);
            this.DeserializeCommand   = new DelegateCommand(this.DeserializeData);

            //If we have already a file, go and get it!
            this.DeserializeData();
        }
Beispiel #28
0
        public override string Start()
        {
            PhysicalDirectory.Refresh();
            if (!PhysicalDirectory.Exists)
            {
                throw new DirectoryNotFoundException(PhysicalDirectory.FullName);
            }

            SetUserPermission(Users, PhysicalDirectory);

            var settings = new WebServerSettings();

            settings.RootPhysicalPath = PhysicalDirectory.FullName;

            _server = new WebServerIISExpress(settings);
            var application = _server.DefaultWebSite.Applications.Add("/" + VirtualPath, PhysicalDirectory.FullName);

            _server.ServerManager.CommitChanges();

            Thread.Sleep(IISDelay);

            return(_server.DefaultWebSite.GetHttpVirtualPath() + application.Path);
        }
        private void LoadCatalogStructure(DirectoryInfo catalog, TreeNodeViewModel parentNode, bool isServerLevel)
        {
            if (!catalog.Exists) return;

            TreeNodeViewModel catalogNode = null;
            DirectoryInfo[] catalogs = catalog.GetDirectories();
            foreach (DirectoryInfo directory in catalogs)
            {
                if (isServerLevel)
                {
                    WebServerSettings settings;
                    string settingsFilePath = Path.Combine(directory.FullName, SETTINGS_FILE_NAME);
                    if (File.Exists(settingsFilePath))
                    {
                        settings = LoadWebServerSettings(settingsFilePath);
                    }
                    else
                    {
                        settings = new WebServerSettings() { Name = directory.Name };
                        SaveWebServerSettings(settings, settingsFilePath);
                    }
                    catalogNode = CreateWebServerNode(parentNode, settings);
                }
                else
                {
                    catalogNode = CreateCatalogNode(parentNode, directory.Name);
                }

                LoadCatalogStructure(directory, catalogNode, false);

                FileInfo[] files = directory.GetFiles(QUERY_FILE_SEARCH_PATTERN);
                foreach (FileInfo file in files)
                {
                    CreateScriptNode(catalogNode, file.Name);
                }
            }
        }
 public void TestInitialise()
 {
     _Implementation = new WebServerSettings();
 }
Beispiel #31
0
 public WebServerViewModel(WebServerSettings model)
 {
     Model = model ?? throw new ArgumentNullException(nameof(model));
 }
 private void SaveWebServerSettings(WebServerSettings settings, string settingsFilePath)
 {
     byte[] json = SerializeWebServerSettings(settings);
     File.WriteAllBytes(settingsFilePath, json);
 }
Beispiel #33
0
            public void WhenCreate_IfCustomWebserverAndWebSiteProvidedAndRemoteTrue_ShouldCreate()
            {
                // Arrange  
                _mock.MockWebServer()
                    .MockWebServerInstantiateFromCurrentAssembly()
                    .MockWebServerCreateWithWebSiteProvidedRemoteTrue()
                    .MockWebServerCreate_RemoteTrue();
                    
                TestEasyHelpers.Tools = _mock.ToolsHelper.Object;

                // Act
                var settings = new WebServerSettings();
                var server = WebServer.Create(_mock.MockWebServerName, _mock.MockCreateWebSiteName, settings, _dependencies);

                // Assert 
                Assert.Equal(_mock.MockWebServerName, server.Type);
                Assert.Equal(_mock.MockCreateWebSiteName, settings.WebAppName);
                Assert.Equal(_mock.MockMachineName, settings.HostName);
                Assert.Equal(100000, settings.StartupTimeout);
            }