public static JObject Mapping(JArray arr, string sourceType, string targetType, string metadataType) { JObject Header = new JObject { ["type"] = "TabularTranslator", ["typeConversion"] = true }; JObject typeConversionSettings = new JObject { ["allowDataTruncation"] = true, ["treatBooleanAsNumber"] = false }; Header["typeConversionSettings"] = typeConversionSettings; List <JObject> obj = new List <JObject>(); foreach (JObject r in arr) { JObject mappings = new JObject(); JObject source = new JObject(); JObject sink = new JObject(); if (metadataType == "SQL" && (sourceType == "Azure SQL" || sourceType == "SQL Server") && (targetType == "Azure Blob" || targetType == "ADLS")) { source["name"] = r["COLUMN_NAME"].ToString(); source["type"] = TaskInstancesStatic.TransformSQLTypesToDotNetFramework(r["DATA_TYPE"].ToString()); source["physicalType"] = r["DATA_TYPE"].ToString(); sink["name"] = TaskInstancesStatic.TransformParquetFileColName(r["COLUMN_NAME"].ToString()); sink["type"] = TaskInstancesStatic.TransformSQLTypesToParquet(r["DATA_TYPE"].ToString()); sink["physicalType"] = r["DATA_TYPE"].ToString(); } else if (metadataType == "Parquet" && (sourceType == "Azure Blob" || sourceType == "ADLS") && (targetType == "SQL Server" || targetType == "Azure SQL" || targetType == "Table")) { source["name"] = TaskInstancesStatic.TransformParquetFileColName(r["COLUMN_NAME"].ToString()); source["type"] = TaskInstancesStatic.TransformSQLTypesToParquet(r["DATA_TYPE"].ToString()); source["physicalType"] = r["DATA_TYPE"].ToString(); sink["name"] = r["COLUMN_NAME"].ToString(); sink["type"] = TaskInstancesStatic.TransformSQLTypesToDotNetFramework(r["DATA_TYPE"].ToString()); sink["physicalType"] = r["DATA_TYPE"].ToString(); } mappings["source"] = source; mappings["sink"] = sink; obj.Add(mappings); } Header["mappings"] = JToken.FromObject(obj); JObject Root = new JObject { ["value"] = Header }; return(Root); }