Esempio n. 1
0
        public string MakeConstructor(string table, DataTable columns)
        {
            DbHandler db = new DbHandler();

            var parameter = "";
            var content   = "";

            foreach (DataRow col in columns.Rows)
            {
                var colName = col["COLUMN_NAME"].ToString();
                var type    = db.GetType(col["DATA_TYPE"].ToString());
                parameter += type + " " + colName + ", ";
                content   += "            this." + colName + " = " + colName + ";" + System.Environment.NewLine;
            }

            string UpdateFunc = "public " + table + "(" + parameter.Remove(parameter.Length - 2) + ")" + System.Environment.NewLine;

            UpdateFunc += "        {" + System.Environment.NewLine;
            UpdateFunc += content;
            UpdateFunc += "        }" + System.Environment.NewLine;
            return(UpdateFunc);
        }
Esempio n. 2
0
        private async void btnMap_Click(object sender, EventArgs e)
        {
            var location = lblLink.Text;
            var template = "../../Template/ADO.cs";

            if (string.IsNullOrWhiteSpace(location))
            {
                MessageBox.Show("Please choose file path");
                return;
            }
            MapADOFunction map              = new MapADOFunction();
            FileHandler    filehandler      = new FileHandler();
            DbHandler      db               = new DbHandler();
            string         connectionString = mgrDataSQL.connStr;

            if (string.Compare(txtDbName.Text.Trim(), "MBO") != 0)
            {
                connectionString = "Data Source=" + txtIp.Text + ";Initial Catalog=" + txtDbName.Text + ";User ID=" + txtUsername.Text
                                   + ";Password="******";Integrated Security=False";
            }
            var tables = await db.GetTableNames(txtDbName.Text, connectionString);

            foreach (DataRow row in tables.Rows)
            {
                var tbname = row["NAME"].ToString();

                var columns = await db.GetColumnsNames(txtDbName.Text, tbname, connectionString);

                var constructor = map.MakeConstructor(tbname, columns);
                var insert      = map.MakeInsert(tbname, columns);
                var update      = map.MakeUpdateFunc(tbname, columns);

                var property = "";
                foreach (DataRow col in columns.Rows)
                {
                    var colName = col["COLUMN_NAME"].ToString();
                    var type    = db.GetType(col["DATA_TYPE"].ToString());
                    property += "        public " + type + " " + colName + " { get; set; }" + System.Environment.NewLine;
                }

                string strTemplate = filehandler.ReadFile(template);
                strTemplate = strTemplate.Replace("MapperAsync.Template", txtNamespace.Text);
                strTemplate = strTemplate.Replace("ADO", tbname);
                strTemplate = strTemplate.Replace("public string ID { get; set; }", property);
                strTemplate = strTemplate.Replace("void constructor() { }", constructor);
                strTemplate = strTemplate.Replace("void insertfunc() { }", insert);
                strTemplate = strTemplate.Replace("void updatefunc() { }", update);


                if (filehandler.FileExist(location + "\\" + tbname + ".cs"))
                {
                    filehandler.DeleteFile(location + "\\" + tbname + ".cs");
                }

                try
                {
                    filehandler.WriteFile(strTemplate, location + "\\" + tbname + ".cs");
                }
                catch
                {
                    MessageBox.Show("Cannot open file");
                    return;
                }
                txtResult.Text += "Mapping " + tbname + ".cs success" + System.Environment.NewLine;
            }
            MessageBox.Show("Mapping done!");
            Process.Start(location);
        }