public IEnumerable <Lpp.Dns.DataMart.Lib.PropertyData> GetSettings() { Lpp.Dns.DataMart.Model.Settings.SQLProvider sqlProvider = (Lpp.Dns.DataMart.Model.Settings.SQLProvider)cmbDataProvider.SelectedItem; bool isODBC = sqlProvider == Model.Settings.SQLProvider.ODBC; bool isOracle = sqlProvider == Model.Settings.SQLProvider.Oracle; List <Lpp.Dns.DataMart.Lib.PropertyData> settings = new List <DataMart.Lib.PropertyData>(); settings.Add(new DataMart.Lib.PropertyData("DataProvider", sqlProvider.ToString())); settings.Add(new DataMart.Lib.PropertyData("Server", isODBC ? string.Empty : txtServer.Text.Trim())); settings.Add(new DataMart.Lib.PropertyData("Port", isODBC ? string.Empty : txtPort.Text.Trim())); settings.Add(new DataMart.Lib.PropertyData("UserID", isODBC ? string.Empty : txtUserID.Text.Trim())); settings.Add(new DataMart.Lib.PropertyData("Password", isODBC ? string.Empty : txtPassword.Text.Trim())); settings.Add(new DataMart.Lib.PropertyData("Database", isODBC ? string.Empty : txtDatabase.Text.Trim())); settings.Add(new DataMart.Lib.PropertyData("DataSourceName", isODBC ? cmbDataSourceName.SelectedItem.ToString() : string.Empty)); settings.Add(new DataMart.Lib.PropertyData("ConnectionTimeout", txtConnectionTimeout.Value.ToString())); settings.Add(new DataMart.Lib.PropertyData("CommandTimeout", txtCommandTimeout.Value.ToString())); return(settings); }
public string[] BuildSQLQueries(Guid requestTypeId, string argsXml, bool isMetadataRequest, Lpp.Dns.DataMart.Model.Settings.SQLProvider provider) { var templateName = requestTypeQueryTemplate[requestTypeId]; if (provider == Lpp.Dns.DataMart.Model.Settings.SQLProvider.SQLServer && SQLOverrides.Contains(templateName)) { templateName = templateName.Replace(".txt", ".SQLtxt"); } using (StreamReader r = new StreamReader(this.GetType().Assembly.GetManifestResourceStream(templateName))) { string template = RemoveComments(r.ReadToEnd()); XmlSerializer serializer = new XmlSerializer(typeof(SummaryRequestModel)); using (XmlTextReader reader = new XmlTextReader(new MemoryStream(Encoding.UTF8.GetBytes(argsXml)))) { SummaryRequestModel deserializedModel = (SummaryRequestModel)serializer.Deserialize(reader); //var q = isMetadataRequest ? template : MergeSQL(requestTypeId, template, requestTypeQueryTemplate[requestTypeId], deserializedModel); var q = isMetadataRequest ? template : IsMFU(requestTypeId) ? MergeSQLForMFU(requestTypeId, template, requestTypeQueryTemplate[requestTypeId], deserializedModel) : MergeSQLNonMFU(requestTypeId, template, requestTypeQueryTemplate[requestTypeId], deserializedModel); return(q.Split(queryDelimiters, StringSplitOptions.None)); } } }
public static QueryComposer.Adapters.PCORI.PCORIModelAdapter CreatePCORIModelAdapterAdapter(string connectionString, Lpp.Dns.DataMart.Model.Settings.SQLProvider sqlProvider, string schema = null) { Dictionary <string, object> adapterSettings; if (sqlProvider == Settings.SQLProvider.SQLServer) { var connectionStringBuilder = new System.Data.SqlClient.SqlConnectionStringBuilder(connectionString); adapterSettings = new Dictionary <string, object>() { { "Server", connectionStringBuilder.DataSource }, { "UserID", connectionStringBuilder.UserID }, { "Password", connectionStringBuilder.Password }, { "Database", connectionStringBuilder.InitialCatalog }, { "DataProvider", sqlProvider.ToString() } }; } else if (sqlProvider == Settings.SQLProvider.PostgreSQL) { var postgresConnectionStringBuilder = new Npgsql.NpgsqlConnectionStringBuilder(connectionString); adapterSettings = new Dictionary <string, object>() { { "Server", postgresConnectionStringBuilder.Host }, { "Port", postgresConnectionStringBuilder.Port.ToString() }, { "UserID", postgresConnectionStringBuilder.Username }, //{"Password", System.Text.Encoding.UTF8.GetString(postgresConnectionStringBuilder.PasswordAsByteArray) }, { "Password", postgresConnectionStringBuilder.Password }, { "Database", postgresConnectionStringBuilder.Database }, { "ConnectionTimeout", postgresConnectionStringBuilder.Timeout.ToString() }, { "CommandTimeout", postgresConnectionStringBuilder.CommandTimeout.ToString() }, { "DatabaseSchema", schema }, { "DataProvider", sqlProvider.ToString() } }; } else if (sqlProvider == Settings.SQLProvider.Oracle) { var oracleConnectionStringBuilder = new Oracle.ManagedDataAccess.Client.OracleConnectionStringBuilder(connectionString); adapterSettings = new Dictionary <string, object>() { { "Server", "" }, { "Port", "" }, { "Database", "" }, { "UserID", oracleConnectionStringBuilder.UserID }, { "Password", oracleConnectionStringBuilder.Password }, { "DataProvider", sqlProvider.ToString() }, { "DatabaseSchema", schema } }; //(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST={server address})(PORT=1521))(CONNECT_DATA=(SERVICE_NAME={service name}))) System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"\((?:[\w|\=|\.]+)\)"); var matches = regex.Matches(oracleConnectionStringBuilder.DataSource); foreach (var m in matches) { string capture = m.ToString(); string[] split = capture.Substring(1, capture.Length - 2).Split(new[] { '=' }); if (string.Equals("HOST", split[0], StringComparison.OrdinalIgnoreCase)) { adapterSettings["Server"] = split[1]; } else if (string.Equals("PORT", split[0], StringComparison.OrdinalIgnoreCase)) { adapterSettings["Port"] = split[1]; } else if (string.Equals("SERVICE_NAME", split[0], StringComparison.OrdinalIgnoreCase)) { adapterSettings["Database"] = split[1]; } } } else { throw new NotImplementedException("Support for parsing configuration string into adapter settings not completed yet."); } var adapter = new QueryComposer.Adapters.PCORI.PCORIModelAdapter(new RequestMetadata { CreatedOn = DateTime.UtcNow, MSRequestID = "Unit Test Request" }); adapter.Initialize(adapterSettings, Guid.NewGuid().ToString("D")); return(adapter); }