private string SetDefaultProperty(string template, IScriptingSettings settings)
        {
            //var author = settings.DefaultProperties.FirstOrDefault(p => p.Name.Equals(DefaultPropertyNames.Author));
            //var link = settings.DefaultProperties.FirstOrDefault(p => p.Name.Equals(DefaultPropertyNames.Link));
            //var separateWindow = settings.DefaultProperties.FirstOrDefault(p => p.Name.Equals(DefaultPropertyNames.InSeparateWindow));

            string description = "	/// "+ settings.Name + (settings is SignalSettings ? " signal" : " indicator");

            if (!String.IsNullOrEmpty(settings.Description))
            {
                description  = "	/// <summary>";
                description += ("\r\n	/// "+ settings.Description);
                if (!String.IsNullOrEmpty(settings.Author))
                {
                    description += ("\r\n	/// "+ settings.Author);
                }
                if (!String.IsNullOrEmpty(settings.Link))
                {
                    description += ("\r\n	/// "+ settings.Link);
                }
                description += "\r\n	/// </summary>";
            }
            template = template.Replace("//{@Description}", description);

            bool separatePanel = false;

            template = template.Replace("//{@IsOverlay}", (!separatePanel).ToString().ToLowerInvariant());
            template = template.Replace("//{@Name}", settings.Name);
            template = template.Replace("//{@namespace}", settings.Name);

            return(template);
        }
        private void DeploySolution(string destinationPath, IScriptingSettings settings, string template)
        {
            Extentions.UnzipFile(_folders.DebugServicesFileName, destinationPath);

            // Create scripting instance file
            var ScriptingInstanceFile = Path.Combine(destinationPath, "ScriptingInstance", settings.Name + ".cs");

            File.WriteAllText(ScriptingInstanceFile, template);

            // Modify project file
            var cprojFileName = Path.Combine(destinationPath, "ScriptingInstance", "ScriptingInstance.csproj");
            var cproj         = File.ReadAllText(cprojFileName);

            File.Delete(cprojFileName);
            var newCprojFileName = Path.Combine(destinationPath, "ScriptingInstance", settings.Name + ".csproj");

            File.WriteAllText(newCprojFileName, cproj.Replace("ScriptingInstance", settings.Name));

            // Modify AssemblyInfo file
            var infoFileName = Path.Combine(destinationPath, "ScriptingInstance", "Properties", "AssemblyInfo.cs");
            var info         = File.ReadAllText(infoFileName);

            File.Delete(infoFileName);
            File.WriteAllText(infoFileName, info.Replace("ScriptingInstance", settings.Name));

            // Rename ScriptingInstance folder
            var oldName = Path.Combine(destinationPath, "ScriptingInstance");
            var newName = Path.Combine(destinationPath, settings.Name);

            if (!oldName.Equals(newName))
            {
                Directory.Move(oldName, newName);
            }

            // Modify Scripting solution file
            var solutionFileName    = Path.Combine(destinationPath, "Scripting.sln");
            var newSolutionFileName = Path.Combine(destinationPath, settings.Name + ".sln");
            var solution            = File.ReadAllText(solutionFileName);

            File.WriteAllText(newSolutionFileName, solution.Replace("ScriptingInstance", settings.Name));
            File.Delete(solutionFileName);
            //SetStartupProject(newSolutionFileName, settings.Name);  //optional

            // Modify Server.cs file
            var serverFileName = Path.Combine(destinationPath, "SimulatedServer", "Server.cs");
            var server         = File.ReadAllText(serverFileName);

            File.WriteAllText(serverFileName, server.Replace("ScriptingInstance", settings.Name));

            // Modify Server.cs file
            var serverCprojPath = Path.Combine(destinationPath, "SimulatedServer", "SimulatedServer.csproj");
            var serverCproj     = File.ReadAllText(serverCprojPath);

            serverCproj = serverCproj.Replace("ScriptingInstance", settings.Name);
            File.WriteAllText(serverCprojPath, serverCproj);

            Process.Start(newSolutionFileName);
        }