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);
        }