コード例 #1
0
ファイル: ItemTemplates.cs プロジェクト: Roare/ItemCreator
        /// <summary>
        /// Return the CSharp Code of the representative row
        /// </summary>
        /// <param name="row">id of the row</param>
        /// <returns>string code</returns>
        public string getCSharpCode(int row)
        {
            setDefaultItemValues(row);
            ItemTemplates.ItemTemplateRow tempRow = (ItemTemplates.ItemTemplateRow) this.ItemTemplate.Rows[row];

            string code = "";

            code += "ItemTemplate " + tempRow.Id_nb + " = null;" + System.Environment.NewLine;
            code += tempRow.Id_nb + " = (ItemTemplate) GameServer.Database.FindObjectByKey(typeof (ItemTemplate), \"" + tempRow.Id_nb + "\");" + System.Environment.NewLine;
            code += "if (" + tempRow.Id_nb + " == null)" + System.Environment.NewLine;
            code += "{" + System.Environment.NewLine;
            code += "    if (log.IsWarnEnabled) log.Warn(\"Could not find " + tempRow.Id_nb + ", creating it ...\");" + System.Environment.NewLine;

            for (int i = 0; i < this.ItemTemplate.Columns.Count; i++)
            {
                object value = tempRow[this.ItemTemplate.Columns[i].ColumnName];

                if (value.GetType() != System.DBNull.Value.GetType() && this.ItemTemplate.Columns[i].ColumnName != "ItemTemplate_ID")
                {
                    switch (value.GetType().ToString())
                    {
                    case "System.String":
                    {
                        if ((string)value != "")
                        {
                            code += "    " + tempRow.Id_nb + "." + this.ItemTemplate.Columns[i].ColumnName + " = \"" + value.ToString() + "\";" + System.Environment.NewLine;
                        }
                        break;
                    }

                    case "System.Boolean":
                    {
                        code += "    " + tempRow.Id_nb + "." + this.ItemTemplate.Columns[i].ColumnName + " = " + value.ToString().ToLower() + ";" + System.Environment.NewLine;
                        break;
                    }

                    default:
                    {
                        if (System.Convert.ToInt32(value) != 0)
                        {
                            code += "    " + tempRow.Id_nb + "." + this.ItemTemplate.Columns[i].ColumnName + " = " + value.ToString() + ";" + System.Environment.NewLine;
                        }
                        break;
                    }
                    }
                }
            }

            code += "    if (SAVE_INTO_DATABASE) GameServer.Database.AddNewObject(" + tempRow.Id_nb + ");" + System.Environment.NewLine;
            code += "}";

            return(code);
        }
コード例 #2
0
ファイル: MainForm.cs プロジェクト: Roare/ItemCreator
        private void newItem(object sender, EventArgs e)
        {
            if (item.ItemTemplate.Count > 0)
            {
                item.ItemTemplate.Clear();
            }
            ItemTemplates.ItemTemplateRow itemTemplateRow = item.ItemTemplate.NewItemTemplateRow();
            item.ItemTemplate.Rows.Add(itemTemplateRow);

            loadItemValues();

            // New Item - Merecs ItemCreator for Dawn of Light
            this.Text    = Locales.GetString("new_item") + " - " + Locales.GetString("application_name");
            itemFilename = "";
            itemSaved    = true;
        }
コード例 #3
0
ファイル: ItemTemplates.cs プロジェクト: Roare/ItemCreator
        /// <summary>
        /// Sets not asked values to its reference
        /// </summary>
        /// <param name="row">row of the Item</param>
        public void setDefaultItemValues(int row)
        {
            ItemTemplates.ItemTemplateRow tempRow = (ItemTemplates.ItemTemplateRow) this.ItemTemplate.Rows[row];

            if (!tempRow.IsMaxChargesNull())
            {
                tempRow.Charges = tempRow.MaxCharges;
            }
            if (!tempRow.IsMaxCharges1Null())
            {
                tempRow.Charges1 = tempRow.MaxCharges1;
            }
            if (!tempRow.IsPoisonChargesNull())
            {
                tempRow.PoisonCharges = tempRow.PoisonMaxCharges;
            }
        }
コード例 #4
0
        private void getTableData(int page)
        {
            try
            {
                int fromValue = page * Convert.ToInt32(this.data_per_page.SelectedItem);

                string SQL       = "SELECT Id_nb, Name, Level FROM " + this.mainForm.mysqlRow.ItemTemplateTable + " WHERE 1 ";
                string countSQL  = "SELECT count(*) FROM " + this.mainForm.mysqlRow.ItemTemplateTable + " WHERE 1 ";
                string addingSQL = "";

                if (this.itemName.Text != "")
                {
                    addingSQL += " AND " + this.comboSearchType.Text + " LIKE '%" + this.itemName.Text + "%' ";
                }

                if (addingSQL != "")
                {
                    SQL      += addingSQL;
                    countSQL += addingSQL;
                }
                SQL += " ORDER BY " + this.order_by.SelectedItem + " LIMIT " + fromValue + ", " + this.data_per_page.SelectedItem;

                mainForm.mysqlConnection.Open();

                MySqlDataReader reader;
                MySqlCommand    cmd;

                //Count
                cmd    = new MySqlCommand(countSQL, mainForm.mysqlConnection);
                reader = cmd.ExecuteReader();
                if (reader.Read())
                {
                    decimal anzahlSeiten = reader.GetInt32(0) / Convert.ToInt32(this.data_per_page.SelectedItem);
                    this.current_page.Maximum = Math.Floor(anzahlSeiten);
                    this.pages_total.Text     = Convert.ToString(Math.Floor(anzahlSeiten));
                }
                reader.Close();

                //Data
                cmd    = new MySqlCommand(SQL, mainForm.mysqlConnection);
                reader = cmd.ExecuteReader();

                this.items.ItemTemplate.Clear();
                while (reader.Read())
                {
                    ItemTemplates.ItemTemplateRow row = items.ItemTemplate.NewItemTemplateRow();
                    row.Id_nb = reader.GetString("Id_nb");
                    row.Name  = reader.GetString("Name");
                    row.Level = reader.GetInt32("Level");

                    this.items.ItemTemplate.Rows.Add(row);
                }
            }
            catch (MySqlException ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                mainForm.mysqlConnection.Close();
            }
        }
コード例 #5
0
ファイル: ItemTemplates.cs プロジェクト: Roare/ItemCreator
        public string getUpdateSqlCode(int row, database.Preferences.MySQLRow mysqlRow, MySqlConnection connection)
        {
            setDefaultItemValues(row);
            ItemTemplates.ItemTemplateRow tempRow      = (ItemTemplates.ItemTemplateRow) this.ItemTemplate.Rows[row];
            System.Data.DataTable         columnsTable = new System.Data.DataTable();

            //automatic detection
            if (mysqlRow.cellDetection == true && connection != null)
            {
                try
                {
                    connection.Open();
                    string SQL = "SHOW COLUMNS FROM " + mysqlRow.ItemTemplateTable;

                    MySqlCommand    cmd    = new MySqlCommand(SQL, connection);
                    MySqlDataReader reader = cmd.ExecuteReader();

                    while (reader.Read())
                    {
                        columnsTable.Columns.Add(reader.GetString(0));
                    }
                }
                catch (MySqlException ex)
                {
                    System.Windows.Forms.MessageBox.Show(ex.Message);
                    columnsTable = this.ItemTemplate;
                }
                finally
                {
                    connection.Close();
                }
            }
            else
            {
                columnsTable = this.ItemTemplate.Clone();

                if (mysqlRow.ArtiID == false)
                {
                    columnsTable.Columns.Remove("ArtiID");
                }
            }

            string dataSQL      = "";
            bool   insertedData = false;

            string sqlCodeRaw = "";
            int    i          = 0;

            foreach (System.Data.DataColumn column in columnsTable.Columns)
            {
                if (this.ItemTemplate.Columns.Contains(column.ColumnName))
                {
                    if (sqlCodeRaw != "")
                    {
                        sqlCodeRaw += ", ";
                    }
                    sqlCodeRaw += "`" + column.ColumnName + "` = @value" + i;
                }
                i++;
            }
            string sqlCode = "UPDATE " + mysqlRow.ItemTemplateTable + " SET " + sqlCodeRaw;

            MySqlCommand c = new MySqlCommand(sqlCode);

            i = 0;
            foreach (System.Data.DataColumn column in columnsTable.Columns)
            {
                if (this.ItemTemplate.Columns.Contains(column.ColumnName))
                {
                    object value = tempRow[column.ColumnName];
                    c.Parameters.AddWithValue("value" + i, value);
                }
                i++;
            }

            foreach (System.Data.DataColumn column in columnsTable.Columns)
            {
                if (this.ItemTemplate.Columns.Contains(column.ColumnName))
                {
                    if (column.Unique == false && column.ColumnName != "ItemTemplate_ID")
                    {
                        if (tempRow.IsNull(column.ColumnName))
                        {
                            if (insertedData != false)
                            {
                                dataSQL += ", ";
                            }
                            else
                            {
                                insertedData = true;
                            }
                            dataSQL += "`" + column.ColumnName + "` = NULL";
                            break;
                        }
                        else
                        {
                            object value = tempRow[column.ColumnName];
                            //if (value.GetType() != System.DBNull.Value.GetType())
                            //{
                            //Alle Spalten die einen Wert enthalten werdne in der SQL aufgelistet, um NULL-Werte automatisch setzen zu können
                            //columnsSQL

                            switch (value.GetType().ToString())
                            {
                            case "System.String":
                            {
                                if (insertedData != false)
                                {
                                    dataSQL += ", ";
                                }
                                else
                                {
                                    insertedData = true;
                                }
                                dataSQL += "`" + column.ColumnName + "` = '" + this.escapeString(value.ToString()) + "'";
                                break;
                            }

                            case "System.Boolean":
                            {
                                if (insertedData != false)
                                {
                                    dataSQL += ", ";
                                }
                                else
                                {
                                    insertedData = true;
                                }

                                if ((bool)value == true)
                                {
                                    dataSQL += "`" + column.ColumnName + "` = 1";
                                }
                                else
                                {
                                    dataSQL += "`" + column.ColumnName + "` = 0";
                                }
                                break;
                            }

                            case "System.DBNull":
                            {
                                if (insertedData != false)
                                {
                                    dataSQL += ", ";
                                }
                                else
                                {
                                    insertedData = true;
                                }
                                dataSQL += "`" + column.ColumnName + "` = NULL";
                                break;
                            }

                            default:
                            {
                                if (insertedData != false)
                                {
                                    dataSQL += ", ";
                                }
                                else
                                {
                                    insertedData = true;
                                }
                                dataSQL += "`" + column.ColumnName + "` = " + value.ToString();
                                break;
                            }
                            }
                        }
                    }
                }
            }

            string code;

            code = "UPDATE " + mysqlRow.ItemTemplateTable + " SET " + dataSQL + " WHERE `Id_nb` = '" + tempRow.Id_nb + "' LIMIT 1";


            return(code);
        }
コード例 #6
0
ファイル: ItemTemplates.cs プロジェクト: Roare/ItemCreator
        public string getInsertSqlCode(int row, database.Preferences.MySQLRow mysqlRow, MySqlConnection connection)
        {
            setDefaultItemValues(row);
            ItemTemplates.ItemTemplateRow tempRow      = (ItemTemplates.ItemTemplateRow) this.ItemTemplate.Rows[row];
            System.Data.DataTable         columnsTable = new System.Data.DataTable();

            //automatic detection
            if (mysqlRow.cellDetection == true && connection != null)
            {
                try
                {
                    connection.Open();
                    string SQL = "SHOW COLUMNS FROM " + mysqlRow.ItemTemplateTable;

                    MySqlCommand    cmd    = new MySqlCommand(SQL, connection);
                    MySqlDataReader reader = cmd.ExecuteReader();

                    while (reader.Read())
                    {
                        columnsTable.Columns.Add(reader.GetString(0));
                    }
                }
                catch (MySqlException ex)
                {
                    System.Windows.Forms.MessageBox.Show(ex.Message);
                    columnsTable = this.ItemTemplate;
                }
                finally
                {
                    connection.Close();
                }
            }
            else
            {
                columnsTable = this.ItemTemplate.Clone();

                if (mysqlRow.ArtiID == false)
                {
                    columnsTable.Columns.Remove("ArtiID");
                }
            }

            string columnsSQL     = "";
            string dataSQL        = "";
            bool   insertedColumn = false;
            bool   insertedData   = false;

            foreach (System.Data.DataColumn column in columnsTable.Columns)
            {
                if (this.ItemTemplate.Columns.Contains(column.ColumnName))
                {
                    if (!tempRow.IsNull(column.ColumnName))
                    {
                        object value = tempRow[column.ColumnName];

                        switch (value.GetType().ToString())
                        {
                        case "System.String":
                        {
                            if ((string)value != "")
                            {
                                if (insertedColumn == false)
                                {
                                    columnsSQL    += "`" + column.ColumnName + "`";
                                    insertedColumn = true;
                                }
                                else
                                {
                                    columnsSQL += ", `" + column.ColumnName + "`";
                                }

                                if (insertedData != false)
                                {
                                    dataSQL += ", ";
                                }
                                else
                                {
                                    insertedData = true;
                                }
                                dataSQL += "'" + this.escapeString(value.ToString()) + "'";
                            }
                            break;
                        }

                        case "System.Boolean":
                        {
                            if (insertedColumn == false)
                            {
                                columnsSQL    += "`" + column.ColumnName + "`";
                                insertedColumn = true;
                            }
                            else
                            {
                                columnsSQL += ", `" + column.ColumnName + "`";
                            }

                            if (insertedData != false)
                            {
                                dataSQL += ", ";
                            }
                            else
                            {
                                insertedData = true;
                            }

                            if ((bool)value == true)
                            {
                                dataSQL += "1";
                            }
                            else
                            {
                                dataSQL += "0";
                            }
                            break;
                        }

                        default:
                        {
                            if (System.Convert.ToInt32(value) != 0)
                            {
                                if (insertedColumn == false)
                                {
                                    columnsSQL    += "`" + column.ColumnName + "`";
                                    insertedColumn = true;
                                }
                                else
                                {
                                    columnsSQL += ", `" + column.ColumnName + "`";
                                }

                                if (insertedData != false)
                                {
                                    dataSQL += ", ";
                                }
                                else
                                {
                                    insertedData = true;
                                }
                                dataSQL += value.ToString();
                            }
                            break;
                        }
                        }
                    }
                }
            }

            string code;

            code = "REPLACE INTO " + mysqlRow.ItemTemplateTable + " (" + columnsSQL + ") VALUES (" + dataSQL + ")";

            return(code);
        }