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); }