示例#1
0
        public void CreateTSQL(SampleSQLData sample, IList <object> sqlList, IDictionary <string, string> parameters)
        {
            string baseSQL = @"DELETE FROM {0} WHERE {1};";
            string dataSQL = string.Empty;

            foreach (var row in sample.Rows)
            {
                string fields = string.Empty;

                foreach (var key in sample.Keys)
                {
                    Common.Schema schema = sample.Schema.SingleOrDefault(s => s.Column == key);

                    string value = JSON.DeserializeDynamic(row.ToString())[schema.Column];

                    if (parameters.ContainsKey(value))
                    {
                        value = parameters[value];
                    }

                    string parsedValue = "{0}".FormatWith(ParserDataType.ParseSQL((ParserDataType.DataType)Enum.Parse(typeof(ParserDataType.DataType), schema.Type, true), value));

                    fields += "{0}={1} AND ".FormatWith(schema.Column, parsedValue);
                }

                dataSQL += baseSQL.FormatWith(sample.Table, fields.Substring(0, fields.LastIndexOf("AND")));
            }

            if (!string.IsNullOrEmpty(dataSQL))
            {
                sqlList.Add(dataSQL);
            }
        }
        public void CreateTSQL(SampleSQLData sample, IList <object> sqlList)
        {
            string baseSQL = @"INSERT INTO {0} ({1}) VALUES ({2});";
            string dataSQL = string.Empty;

            foreach (var row in sample.Rows)
            {
                string fields = string.Empty;
                string values = string.Empty;

                foreach (var schema in sample.Schema)
                {
                    fields += "{0},".FormatWith(schema.Column);

                    string value = JSON.DeserializeDynamic(row.ToString())[schema.Column];

                    values += "{0},".FormatWith(ParserDataType.ParseSQL((ParserDataType.DataType)Enum.Parse(typeof(ParserDataType.DataType), schema.Type, true), value));
                }

                dataSQL += baseSQL.FormatWith(sample.Table, fields.Substring(0, fields.LastIndexOf(',')), values.Substring(0, values.LastIndexOf(',')));
            }

            if (!string.IsNullOrEmpty(dataSQL))
            {
                sqlList.Add(dataSQL);
            }
        }
        public IList <object> CreateInsert(IList <object> list)
        {
            IList <SampleSQLData> convertedList = list.Cast <SampleSQLData>().ToList();
            IList <object>        insertList    = new List <object>();

            foreach (SampleSQLData sample in convertedList)
            {
                foreach (var fk in sample.FK_References)
                {
                    SampleSQLData sampleDataFiltered = convertedList.Where(l => !_tablesLoaded.ContainsKey(fk.Table) && l.Table == fk.Table).SingleOrDefault();

                    if (sampleDataFiltered != null)
                    {
                        TSQLProcessor.Execute(new CreateInsertSQL(), sampleDataFiltered, insertList);

                        _tablesLoaded.Add(fk.Table, true);
                    }
                }

                if (!_tablesLoaded.ContainsKey(sample.Table))
                {
                    TSQLProcessor.Execute(new CreateInsertSQL(), sample, insertList);

                    _tablesLoaded.Add(sample.Table, true);
                }
            }

            return(insertList);
        }
示例#4
0
        private void CreateInsertCommand(SampleSQLData sample, IList <object> insertList, IList <SampleSQLData> convertedList)
        {
            foreach (var fk in sample.FK_References)
            {
                SampleSQLData sampleDataFiltered = convertedList.SingleOrDefault(l => !_tablesLoaded.ContainsKey(fk.Table) && l.Table == fk.Table);

                if (sampleDataFiltered != null)
                {
                    CreateInsertCommand(sampleDataFiltered, insertList, convertedList);
                }
            }

            if (!_tablesLoaded.ContainsKey(sample.Table))
            {
                TSQLProcessor.Execute(new CreateInsertSQL(), sample, insertList);
                _tablesLoaded.Add(sample.Table, true);
            }
        }
示例#5
0
        public void CreateTSQL(SampleSQLData sample, IList <object> sqlList, IDictionary <string, string> parameters)
        {
            string baseSQL = @"INSERT INTO {0} ({1}) VALUES ({2});";
            string dataSQL = string.Empty;

            foreach (var row in sample.Rows)
            {
                dynamic dynObj = JsonConvert.DeserializeObject(row.ToString());

                JObject jObj = (JObject)dynObj;

                JToken jToken;

                string value = string.Empty;

                string fields = string.Empty;
                string values = string.Empty;

                foreach (var schema in sample.Schema)
                {
                    fields += "{0},".FormatWith(schema.Column);

                    jObj.TryGetValue(schema.Column, out jToken);

                    value = jToken.ToString();

                    if (parameters.ContainsKey(value))
                    {
                        value = parameters[value];
                    }

                    values += "{0},".FormatWith(ParserDataType.ParseSQL((ParserDataType.DataType)Enum.Parse(typeof(ParserDataType.DataType), schema.Type, true), value));
                }

                dataSQL += baseSQL.FormatWith(sample.Table, fields.Substring(0, fields.LastIndexOf(',')), values.Substring(0, values.LastIndexOf(',')));
            }

            if (!string.IsNullOrEmpty(dataSQL))
            {
                sqlList.Add(dataSQL);
            }
        }
        public void CreateTSQL(SampleSQLData sample, IList <object> sqlList)
        {
            string baseSQL = @"DELETE FROM {0} WHERE {1};";
            string dataSQL = string.Empty;

            foreach (var row in sample.Rows)
            {
                dynamic dynObj = JsonConvert.DeserializeObject(row.ToString());

                JObject jObj = (JObject)dynObj;

                string value  = string.Empty;
                string fields = string.Empty;

                foreach (var key in sample.Keys)
                {
                    Schema schema = sample.Schema.SingleOrDefault(s => s.Column == key);

                    if (!jObj.TryGetValue(schema.Column, out JToken jToken))
                    {
                        throw new ArgumentException($"Column '{schema.Column}' not found on data rows provided.");
                    }

                    value = jToken.ToString();

                    string parsedValue = "{0}".FormatWith(ParserDataType.ParseSQL((ParserDataType.DataType)Enum.Parse(typeof(ParserDataType.DataType), schema.Type, true), value));

                    fields += "{0}={1} AND ".FormatWith(schema.Column, parsedValue);
                }

                dataSQL += baseSQL.FormatWith(sample.Table, fields.Substring(0, fields.LastIndexOf("AND")));
            }

            if (!string.IsNullOrEmpty(dataSQL))
            {
                sqlList.Add(dataSQL);
            }
        }
示例#7
0
 public static void Execute(IGenerateTSQL sqlCommand, SampleSQLData sample, IList <object> sqlList)
 {
     sqlCommand.CreateTSQL(sample, sqlList);
 }
示例#8
0
 public static void Execute(IGenerateTSQL sqlCommand, SampleSQLData sample, IList <object> sqlList, IDictionary <string, string> dynamicParameters)
 {
     sqlCommand.CreateTSQL(sample, sqlList, dynamicParameters);
 }