public static void Save(DynamicGingerExecution dynamicRunSet, string fileName) { System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(typeof(DynamicGingerExecution)); System.IO.FileStream file = System.IO.File.Create(fileName); writer.Serialize(file, dynamicRunSet); file.Close(); }
public static DynamicGingerExecution LoadDynamicExecutionFromXML(string content) { System.Xml.Serialization.XmlSerializer reader = new System.Xml.Serialization.XmlSerializer(typeof(DynamicGingerExecution)); System.IO.StringReader stringReader = new System.IO.StringReader(content); DynamicGingerExecution dynamicRunSet = (DynamicGingerExecution)reader.Deserialize(stringReader); stringReader.Close(); return(dynamicRunSet); }
private static string ConvertDynamicExecutionToXML(DynamicGingerExecution dynamicRunSet) { XmlSerializer writer = new XmlSerializer(typeof(DynamicGingerExecution)); StringWriter stringWriter = new StringWriter(); //XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); //ns.Add("", ""); //writer.Serialize(stringWriter, dynamicRunSet, ns); writer.Serialize(stringWriter, dynamicRunSet); stringWriter.Close(); return(stringWriter.GetStringBuilder().ToString()); }
public static string CreateDynamicRunSetXML(Solution solution, RunsetExecutor runsetExecutor, CLIHelper cliHelper) { runsetExecutor.RunSetConfig.UpdateRunnersBusinessFlowRunsList(); DynamicGingerExecution dynamicExecution = new DynamicGingerExecution(); dynamicExecution.SolutionDetails = new SolutionDetails(); if (cliHelper.DownloadUpgradeSolutionFromSourceControl == true) { dynamicExecution.SolutionDetails.SourceControlDetails = new SourceControlDetails(); dynamicExecution.SolutionDetails.SourceControlDetails.Type = solution.SourceControl.GetSourceControlType.ToString(); if (solution.SourceControl.GetSourceControlType == SourceControlBase.eSourceControlType.SVN)//added for supporting Jenkins way of config creation- need to improve it { string modifiedURI = solution.SourceControl.SourceControlURL.TrimEnd(new char[] { '/' }); int lastSlash = modifiedURI.LastIndexOf('/'); modifiedURI = (lastSlash > -1) ? modifiedURI.Substring(0, lastSlash) : modifiedURI; dynamicExecution.SolutionDetails.SourceControlDetails.Url = modifiedURI; } else { dynamicExecution.SolutionDetails.SourceControlDetails.Url = solution.SourceControl.SourceControlURL.ToString(); } if (solution.SourceControl.SourceControlUser != null && solution.SourceControl.SourceControlPass != null) { dynamicExecution.SolutionDetails.SourceControlDetails.User = solution.SourceControl.SourceControlUser; dynamicExecution.SolutionDetails.SourceControlDetails.Password = EncryptionHandler.EncryptwithKey(solution.SourceControl.SourceControlPass); dynamicExecution.SolutionDetails.SourceControlDetails.PasswordEncrypted = "Y"; } else { dynamicExecution.SolutionDetails.SourceControlDetails.User = "******"; dynamicExecution.SolutionDetails.SourceControlDetails.Password = "******"; } if (solution.SourceControl.GetSourceControlType == SourceControlBase.eSourceControlType.GIT && solution.SourceControl.SourceControlProxyAddress.ToLower().ToString() == "true") { dynamicExecution.SolutionDetails.SourceControlDetails.ProxyServer = solution.SourceControl.SourceControlProxyAddress.ToString(); dynamicExecution.SolutionDetails.SourceControlDetails.ProxyPort = solution.SourceControl.SourceControlProxyPort.ToString(); } } dynamicExecution.SolutionDetails.Path = solution.Folder; dynamicExecution.ShowAutoRunWindow = cliHelper.ShowAutoRunWindow; AddRunset addRunset = new AddRunset(); addRunset.Name = "Dynamic_" + runsetExecutor.RunSetConfig.Name; addRunset.Environment = runsetExecutor.RunsetExecutionEnvironment.Name; addRunset.RunAnalyzer = cliHelper.RunAnalyzer; addRunset.RunInParallel = runsetExecutor.RunSetConfig.RunModeParallel; foreach (GingerRunner gingerRunner in runsetExecutor.RunSetConfig.GingerRunners) { AddRunner addRunner = new AddRunner(); addRunner.Name = gingerRunner.Name; if (gingerRunner.UseSpecificEnvironment == true && string.IsNullOrEmpty(gingerRunner.SpecificEnvironmentName)) { addRunner.Environment = gingerRunner.SpecificEnvironmentName; } if (gingerRunner.RunOption != GingerRunner.eRunOptions.ContinueToRunall) { addRunner.RunMode = gingerRunner.RunOption.ToString(); } foreach (ApplicationAgent applicationAgent in gingerRunner.ApplicationAgents) { addRunner.SetAgents.Add(new SetAgent() { AgentName = applicationAgent.AgentName, ApplicationName = applicationAgent.AppName }); } foreach (BusinessFlowRun businessFlowRun in gingerRunner.BusinessFlowsRunList) { AddBusinessFlow addBusinessFlow = new AddBusinessFlow(); addBusinessFlow.Name = businessFlowRun.BusinessFlowName; if (businessFlowRun.BusinessFlowCustomizedRunVariables.Count > 0) { addBusinessFlow.InputVariables = new System.Collections.Generic.List <InputVariable>(); foreach (VariableBase variableBase in businessFlowRun.BusinessFlowCustomizedRunVariables) { InputVariable inputVar = new InputVariable(); if (variableBase.ParentType != "Business Flow") { inputVar.VariableParentType = variableBase.ParentType; inputVar.VariableParentName = variableBase.ParentName; } inputVar.VariableName = variableBase.Name; inputVar.VariableValue = variableBase.Value; addBusinessFlow.InputVariables.Add(inputVar); } } addRunner.AddBusinessFlows.Add(addBusinessFlow); } addRunset.AddRunners.Add(addRunner); } foreach (RunSetActionBase runSetOperation in runsetExecutor.RunSetConfig.RunSetActions) { if (runSetOperation is RunSetActionHTMLReportSendEmail) { RunSetActionHTMLReportSendEmail runsetMailReport = (RunSetActionHTMLReportSendEmail)runSetOperation; MailReport dynamicMailReport = new MailReport(); dynamicMailReport.Condition = runsetMailReport.Condition.ToString(); dynamicMailReport.RunAt = runsetMailReport.RunAt.ToString(); dynamicMailReport.MailFrom = runsetMailReport.MailFrom; dynamicMailReport.MailTo = runsetMailReport.MailTo; dynamicMailReport.MailCC = runsetMailReport.MailCC; dynamicMailReport.Subject = runsetMailReport.Subject; dynamicMailReport.Comments = runsetMailReport.Comments; if (runsetMailReport.Email.EmailMethod == GingerCore.GeneralLib.Email.eEmailMethod.OUTLOOK) { dynamicMailReport.SendViaOutlook = true; } else { dynamicMailReport.SmtpDetails = new SmtpDetails(); dynamicMailReport.SmtpDetails.Server = runsetMailReport.Email.SMTPMailHost; dynamicMailReport.SmtpDetails.Port = runsetMailReport.Email.SMTPPort.ToString(); dynamicMailReport.SmtpDetails.EnableSSL = runsetMailReport.Email.EnableSSL.ToString(); if (runsetMailReport.Email.ConfigureCredential) { dynamicMailReport.SmtpDetails.User = runsetMailReport.Email.SMTPUser; dynamicMailReport.SmtpDetails.Password = runsetMailReport.Email.SMTPPass; } } if (runsetMailReport.EmailAttachments.Where(x => x.AttachmentType == EmailAttachment.eAttachmentType.Report).FirstOrDefault() != null) { dynamicMailReport.IncludeAttachmentReport = true; } else { dynamicMailReport.IncludeAttachmentReport = false; } addRunset.AddRunsetOperations.Add(dynamicMailReport); } else if (runSetOperation is RunSetActionJSONSummary) { JsonReport dynamicJsonReport = new JsonReport(); addRunset.AddRunsetOperations.Add(dynamicJsonReport); } } dynamicExecution.AddRunsets.Add(addRunset); string content = ConvertDynamicExecutionToXML(dynamicExecution); return(content); }