internal static string GenerateScript(GenerateScriptParams generateScriptParams, CancellationToken cancellationToken) { const string scriptPrologue = @"IF (NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'AssessmentResult')) BEGIN CREATE TABLE [dbo].[AssessmentResult]( [CheckName] [nvarchar](max) NOT NULL, [CheckId] [nvarchar](max) NOT NULL, [RulesetName] [nvarchar](max) NOT NULL, [RulesetVersion] [nvarchar](max) NOT NULL, [Severity] [nvarchar](max) NOT NULL, [Message] [nvarchar](max) NOT NULL, [TargetPath] [nvarchar](max) NOT NULL, [TargetType] [nvarchar](max) NOT NULL, [HelpLink] [nvarchar](max) NOT NULL, [Timestamp] [datetimeoffset](7) NOT NULL ) END GO INSERT INTO [dbo].[AssessmentResult] ([CheckName],[CheckId],[RulesetName],[RulesetVersion],[Severity],[Message],[TargetPath],[TargetType],[HelpLink],[Timestamp]) VALUES"; var sb = new StringBuilder(); if (generateScriptParams.Items != null) { sb.Append(scriptPrologue); foreach (var item in generateScriptParams.Items) { cancellationToken.ThrowIfCancellationRequested(); if (item.Kind == AssessmentResultItemKind.Note) { sb.Append( $"\r\n('{CUtils.EscapeStringSQuote(item.DisplayName)}','{CUtils.EscapeStringSQuote(item.CheckId)}','{CUtils.EscapeStringSQuote(item.RulesetName)}','{item.RulesetVersion}','{item.Level}','{CUtils.EscapeStringSQuote(item.Message)}','{CUtils.EscapeStringSQuote(item.TargetName)}','{item.TargetType}','{CUtils.EscapeStringSQuote(item.HelpLink)}','{item.Timestamp:yyyy-MM-dd hh:mm:ss.fff zzz}'),"); } } sb.Length -= 1; } return(sb.ToString()); }
private string AddStringParameter(string paramName, string prefix, string paramValue) { string value = string.IsNullOrWhiteSpace(paramValue) ? paramValue : CUtils.EscapeStringSQuote(paramValue); return($"{prefix} {paramName} = N'{value}'"); }