private string GetLanguageContent(ExternalLanguageContent content, int index, Dictionary <string, object> parameters) { string postfix = index.ToString(); string prefix = ","; string contentScript = string.Empty; if (content.IsLocalFile) { byte[] contentBytes; using (var stream = new FileStream(content.PathToExtension, FileMode.Open, FileAccess.Read)) { using (var reader = new BinaryReader(stream)) { contentBytes = reader.ReadBytes((int)stream.Length); } } parameters.Add($"{ContentParamName}{postfix}", contentBytes); contentScript = $"CONTENT = @{ContentParamName}{postfix}"; } else if (!string.IsNullOrWhiteSpace(content.PathToExtension)) { contentScript = $"{AddStringParameter(ContentParamName, string.Empty, content.PathToExtension)}"; } return($@"( {contentScript} {AddStringParameter(FileNameParamName, string.IsNullOrWhiteSpace(contentScript) ? string.Empty : prefix, content.ExtensionFileName)} {AddStringParameter(ParametersParamName, prefix, content.Parameters)} {AddStringParameter(EnvVariablesParamName, prefix, content.EnvironmentVariables)} )"); }
private string GetUpdateScript(ExternalLanguage language, ExternalLanguageContent content, Dictionary <string, object> parameters, ContentModifyType contentModifyType) { return(GetLanguageModifyScript(language, new List <ExternalLanguageContent> { content }, parameters, ModifyType.Alter, contentModifyType)); }
private IDbConnection Verify(ExternalLanguage language, Func <IDbConnection, ExternalLanguage, Mock <IDbCommand>, bool> func) { Mock <IDbConnection> connectionMock = new Mock <IDbConnection>(); Mock <IDbCommand> commandMock = new Mock <IDbCommand>(); Mock <IDbDataParameter> dbDataParamMock = new Mock <IDbDataParameter>(); Mock <IDataParameterCollection> dbDataParametersMock = new Mock <IDataParameterCollection>(); Mock <IDataReader> dataReaderMock = new Mock <IDataReader>(); bool dataReaderHasValues = language != null; dataReaderMock.Setup(x => x.Read()).Returns(() => dataReaderHasValues).Callback(() => { dataReaderHasValues = false; } ); if (language != null) { ExternalLanguageContent content = language.Contents == null || language.Contents.Count == 0 ? null : language.Contents[0]; dataReaderMock.Setup(x => x.GetInt32(0)).Returns(1); dataReaderMock.Setup(x => x.IsDBNull(1)).Returns(language.Name == null); dataReaderMock.Setup(x => x.GetString(1)).Returns(language.Name); dataReaderMock.Setup(x => x.IsDBNull(2)).Returns(language.CreatedDate == null); if (language.CreatedDate != null) { dataReaderMock.Setup(x => x.GetDateTime(2)).Returns(DateTime.Parse(language.CreatedDate)); } dataReaderMock.Setup(x => x.IsDBNull(3)).Returns(language.Owner == null); if (language.Owner != null) { dataReaderMock.Setup(x => x.GetString(3)).Returns(language.Owner); } dataReaderMock.Setup(x => x.IsDBNull(5)).Returns(content == null || content.ExtensionFileName == null); if (content != null && content.ExtensionFileName != null) { dataReaderMock.Setup(x => x.GetString(5)).Returns(content.ExtensionFileName); } dataReaderMock.Setup(x => x.IsDBNull(6)).Returns(content == null || content.Platform == null); if (content != null && content.Platform != null) { dataReaderMock.Setup(x => x.GetString(6)).Returns(content.Platform); } dataReaderMock.Setup(x => x.IsDBNull(7)).Returns(content == null || content.Parameters == null); if (content != null && content.Parameters != null) { dataReaderMock.Setup(x => x.GetString(7)).Returns(content.Parameters); } dataReaderMock.Setup(x => x.IsDBNull(8)).Returns(content == null || content.EnvironmentVariables == null); if (content != null && content.EnvironmentVariables != null) { dataReaderMock.Setup(x => x.GetString(8)).Returns(content.EnvironmentVariables); } } dbDataParametersMock.Setup(x => x.Add(It.IsAny <object>())); dbDataParamMock.Setup(x => x.ParameterName); dbDataParamMock.Setup(x => x.Value); commandMock.Setup(x => x.CreateParameter()).Returns(dbDataParamMock.Object); commandMock.Setup(x => x.Parameters).Returns(dbDataParametersMock.Object); commandMock.SetupSet(x => x.CommandText = It.IsAny <string>()); commandMock.Setup(x => x.ExecuteNonQuery()); commandMock.Setup(x => x.ExecuteReader()).Returns(dataReaderMock.Object); connectionMock.Setup(x => x.CreateCommand()).Returns(commandMock.Object); func(connectionMock.Object, language, commandMock); return(connectionMock.Object); }