} // End Function GetValue private static System.Collections.Generic.Dictionary <string, object> ProcessObject(Newtonsoft.Json.Linq.JToken json) { if (json == null) { throw new System.ArgumentNullException(nameof(json)); } System.Collections.Generic.Dictionary <string, object> lss = new System.Collections.Generic.Dictionary <string, object>(System.StringComparer.OrdinalIgnoreCase); Newtonsoft.Json.Linq.JObject jo = (Newtonsoft.Json.Linq.JObject)json; foreach (System.Collections.Generic.KeyValuePair <string, Newtonsoft.Json.Linq.JToken> kvp in jo) { string name = kvp.Key; object value = GetValue(kvp.Value); System.Console.WriteLine(value); if (ParameterNameHelper.IsInvalid(name)) { continue; } lss.Add(name, value); } return(lss); } // ProcessObject
public Dictionary <string, string> GetColumnNamesAndTypes(ITableInfo tableInfo, List <string> columnNames) { var columnTypesTemplate = new GetColumnTypes(ParameterNameHelper.RemoveQuotationMarks(tableInfo.SchemaName), ParameterNameHelper.RemoveQuotationMarks(tableInfo.TableName), columnNames); var columnTypesQuery = columnTypesTemplate.TransformText(); //Console.WriteLine(columnTypesQuery); DataTable columnTypesTable; try { columnTypesTable = _queryHelper.ExecuteQueryWithoutParams(tableInfo.DbConnectionString, columnTypesQuery); } catch (Exception ex) { throw new ColumnTypesException("An error happened while trying to get column types.", ex); } var columnsAndTypes = new Dictionary <string, string>(); foreach (var rowObject in columnTypesTable.Rows) { var row = (DataRow)rowObject; columnsAndTypes.Add((string)row[GetColumnTypes.columnName], (string)row[GetColumnTypes.columnType]); } return(columnsAndTypes); }
GetParameters(Microsoft.AspNetCore.Http.HttpContext context) { // Note: // Reverse sequence: last inserted item is prefered item... // Missing server-variables // Missing cookies System.Collections.Generic.Dictionary <string, object> dict = null; //foreach (System.Collections.Generic.KeyValuePair<string // , Microsoft.Extensions.Primitives.StringValues> kvp in context.Request.Headers) //{ // dict[kvp.Key] = kvp.Value; //} // Next kvp System.Collections.Generic.List <System.Collections.Generic.Dictionary <string, object> > lss = GetJsonObjectAsParameterList(context); if (lss != null && lss.Count == 1) { dict = lss[0]; } else { dict = new System.Collections.Generic.Dictionary <string, object> (System.StringComparer.InvariantCultureIgnoreCase); } if (context.Request.HasFormContentType) { foreach (System.Collections.Generic.KeyValuePair <string , Microsoft.Extensions.Primitives.StringValues> kvp in context.Request.Form) { if (ParameterNameHelper.IsInvalid(kvp.Key)) { continue; } dict[kvp.Key] = System.Convert.ToString(kvp.Value); } // Next kvp } // End if (context.Request.HasFormContentType) if (context.Request.QueryString.HasValue) { foreach (System.Collections.Generic.KeyValuePair <string , Microsoft.Extensions.Primitives.StringValues> kvp in context.Request.Query) { if (ParameterNameHelper.IsInvalid(kvp.Key)) { continue; } dict[kvp.Key] = System.Convert.ToString(kvp.Value); } // Next kvp } // End if (context.Request.QueryString.HasValue) return(dict); }
public override bool AreTheParamsValid(string connectionString, TableConfig tableConfig) { bool doConstantScrambledDuplicatesExist; bool doAllColumnsExist; bool doAllPairedColumnsInsideExist; bool doAllPairedColumnsOutsideExist; bool isThereAPrimaryKeyConflict; bool isThereAUniqueConstraintConflict; DataTable schemaTable; try { schemaTable = GetTableSchema(connectionString, tableConfig.FullTableName); } catch (SqlException ex) { Log.Error($"Error while checking the parameters of table: {tableConfig.FullTableName}. " + $"Connection string: {connectionString}. " + $"The mapped database {connectionString} or table {tableConfig.FullTableName} doesn't exist or it is unreachable. " + $"Error message: {ex.Message}"); return(false); } var loggingInfo = new LoggingInfo { ConnectionString = connectionString, TableNameWithSchema = tableConfig.FullTableName }; var constantColumns = tableConfig.ConstantColumns?.Select(c => c.Name) .Select(c => ParameterNameHelper.RemoveParenthesises(c)) ?? new List <string>(); var scrambledColumns = tableConfig.ScrambledColumns?.Select(c => c.Name) .Select(c => ParameterNameHelper.RemoveParenthesises(c)) ?? new List <string>(); var pairedColumns = tableConfig.PairedColumnsInsideTable? .Select(cl => cl.Select(c => ParameterNameHelper.RemoveParenthesises(c)).ToList()).ToList() ?? new List <List <string> >(); var allColumns = constantColumns.Concat(scrambledColumns); doConstantScrambledDuplicatesExist = DoConstantScrambledDuplicatesExist(loggingInfo, scrambledColumns, constantColumns); doAllColumnsExist = DoAllColumnsExist(schemaTable, loggingInfo, allColumns); doAllPairedColumnsInsideExist = DoAllPairedColumnsInsideExist(loggingInfo, schemaTable, pairedColumns); doAllPairedColumnsOutsideExist = DoAllPairedColumnsOutsideExist(connectionString, tableConfig); isThereAPrimaryKeyConflict = IsThereAPrimaryKeyConflict(schemaTable, loggingInfo, allColumns); isThereAUniqueConstraintConflict = IsThereAUniqueConstraintConflict(schemaTable, loggingInfo, allColumns); return(!doConstantScrambledDuplicatesExist && doAllColumnsExist && doAllPairedColumnsInsideExist && doAllPairedColumnsOutsideExist && !isThereAPrimaryKeyConflict && !isThereAUniqueConstraintConflict); }
protected override TableConfig NormalizeTableConfigParameters(TableConfig tableConfig) { var normalizedTableConfig = new TableConfig { ConstantColumns = tableConfig.ConstantColumns?.Select(c => new ConstantColumnConfig { Name = ParameterNameHelper.RemoveParenthesises(c.Name), Value = c.Value }).ToList() ?? new List <ConstantColumnConfig>(), ScrambledColumns = tableConfig.ScrambledColumns?.Select(c => new ScrambledColumnConfig { Name = ParameterNameHelper.RemoveParenthesises(c.Name) }).ToList() ?? new List <ScrambledColumnConfig>(), PairedColumnsInsideTable = tableConfig.PairedColumnsInsideTable? .Select(l => ParameterNameHelper.RemoveParenthesisesFromStringList(l)).ToList() ?? new List <List <string> >(), PairedColumnsOutsideTable = tableConfig.PairedColumnsOutsideTable? .Select(p => new PairedColumnsOutsideTableConfig { ColumnMapping = p.ColumnMapping.Select(l => ParameterNameHelper.AddParenthesisesToStrList(l)).ToList(), SourceDestMapping = p.SourceDestMapping.Select(s => new SourceDestMappingStepConfig { DestinationLinkedInstance = ParameterNameHelper.AddParenthesises(s.DestinationLinkedInstance), DestinationConnectionString = s.DestinationConnectionString, DestinationFullTableName = ParameterNameHelper.AddParenthesisToFullTableName(s.DestinationFullTableName), ForeignKeyMapping = s.ForeignKeyMapping.Select(l => ParameterNameHelper.AddParenthesisesToStrList(l)).ToList() }).ToList() }).ToList() ?? new List <PairedColumnsOutsideTableConfig>(), FullTableName = ParameterNameHelper.AddParenthesisToFullTableName(tableConfig.FullTableName), Where = tableConfig.Where }; return(normalizedTableConfig); }
protected override IEnumerable <string> GetNormalizedColumnListCopy(IEnumerable <string> columns) { return(ParameterNameHelper.RemoveParenthesisesFromStringList(columns.ToList())); }
protected override (string schemaName, string tableName) ParseSchemaAndTableName(string schemaAndTableName) { var tableAndSchemaName = schemaAndTableName.Split('.'); return(schemaName : ParameterNameHelper.AddParenthesises(tableAndSchemaName[1]), tableName : ParameterNameHelper.AddParenthesises(tableAndSchemaName[2])); }
protected override string ParseDataSource(string connectionString) { var connectionStringBuilder = new SqlConnectionStringBuilder(DatabaseConfig.ConnectionString); return(ParameterNameHelper.AddParenthesises(connectionStringBuilder.InitialCatalog)); }