public static void InsertNewRow(Item Item) { OleDbCommand command = Connect(); StringBuilder query = new StringBuilder(); query.Append("INSERT INTO [Items]("); for (int i = 1; i < typeof(Item).GetProperties().Length - 1; i++) { query.Append(typeof(Item).GetProperties()[i].Name + ","); } query.Append(typeof(Item).GetProperties().Last().Name); query.Append(") VALUES("); foreach (PropertyInfo prop in Item.GetType().GetProperties()) { //Kihagyja az első propertit az ID-t if (Item.GetType().GetProperties().ToList().IndexOf(prop) == 0) { continue; } var type = Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType; switch (type.Name) { case "Boolean": if (bool.Parse(prop.GetValue(Item, null).ToString())) { query.Append("'1', "); } else { query.Append("'0', "); } break; case "EnumQuality": EnumQuality enumQuality = (EnumQuality)Enum.Parse(typeof(EnumQuality), prop.GetValue(Item, null).ToString()); query.Append("'" + Array.IndexOf(EnumQuality.GetValues(enumQuality.GetType()), enumQuality) + "', "); break; case "EnumItemType": EnumItemType enumItemType = (EnumItemType)Enum.Parse(typeof(EnumItemType), prop.GetValue(Item, null).ToString()); query.Append("'" + Array.IndexOf(EnumItemType.GetValues(enumItemType.GetType()), enumItemType) + "', "); break; case "EnumRarity": EnumRarity enumRarity = (EnumRarity)Enum.Parse(typeof(EnumRarity), prop.GetValue(Item, null).ToString()); query.Append("'" + Array.IndexOf(EnumRarity.GetValues(enumRarity.GetType()), enumRarity) + "', "); break; case "EnumPotionEffect": EnumPotionEffect enumPotionEffect = (EnumPotionEffect)Enum.Parse(typeof(EnumPotionEffect), prop.GetValue(Item, null).ToString()); query.Append("'" + Array.IndexOf(EnumPotionEffect.GetValues(enumPotionEffect.GetType()), enumPotionEffect) + "', "); break; case "EnumPossibleBonusStats": EnumPossibleBonusStats enumPossibleBonusStats = (EnumPossibleBonusStats)Enum.Parse(typeof(EnumPossibleBonusStats), prop.GetValue(Item, null).ToString()); query.Append("'" + Array.IndexOf(EnumPossibleBonusStats.GetValues(enumPossibleBonusStats.GetType()), enumPossibleBonusStats) + "', "); break; default: //Az utolsót külön írja meg mert az utolsónál már le kell zárni a queryt ') -el if (Item.GetType().GetProperties().ToList().IndexOf(prop) == Item.GetType().GetProperties().ToList().IndexOf(Item.GetType().GetProperties().ToList().Last())) { query.Append("'" + prop.GetValue(Item, null).ToString() + "')"); } else { query.Append("'" + prop.GetValue(Item, null).ToString() + "', "); } break; } } command.CommandText = query.ToString(); command.ExecuteNonQuery(); command.Connection.Close(); }
//A bónusz statot írja ki szépen public static string GetBonusStatText(EnumPossibleBonusStats enumPossibleBonusStats, int BonusValue) { string itemBonusText = string.Empty; switch (enumPossibleBonusStats) { case EnumPossibleBonusStats.Damage: itemBonusText = "+" + BonusValue + " Sebzés"; break; case EnumPossibleBonusStats.DamagePercent: itemBonusText = "+" + BonusValue + "% Sebzés"; break; case EnumPossibleBonusStats.CriticalDamage: itemBonusText = "+" + BonusValue + " Kritikus sebzés"; break; case EnumPossibleBonusStats.CriticalHitChancePercent: itemBonusText = "+" + BonusValue + "% Esély kritikus találatra"; break; case EnumPossibleBonusStats.Defense: itemBonusText = "+" + BonusValue + " Védelem"; break; case EnumPossibleBonusStats.DefensePercent: itemBonusText = "+" + BonusValue + "% Védelem"; break; case EnumPossibleBonusStats.DodgeChancePercent: itemBonusText = "+" + BonusValue + "% Elkerülés"; break; case EnumPossibleBonusStats.Health: itemBonusText = "+" + BonusValue + " Élet"; break; case EnumPossibleBonusStats.HealthPercent: itemBonusText = "+" + BonusValue + "% Élet"; break; case EnumPossibleBonusStats.Strength: itemBonusText = "+" + BonusValue + " Erő"; break; case EnumPossibleBonusStats.Dexterity: itemBonusText = "+" + BonusValue + " Ügyesség"; break; case EnumPossibleBonusStats.Vitality: itemBonusText = "+" + BonusValue + " Vitalitás"; break; case EnumPossibleBonusStats.Luck: itemBonusText = "+" + BonusValue + " Szerencse"; break; case EnumPossibleBonusStats.LifeSteal: itemBonusText = "+" + BonusValue + "% Életlopás"; break; case EnumPossibleBonusStats.ReflectDamage: itemBonusText = "+" + BonusValue + "% Visszasebzés"; break; case EnumPossibleBonusStats.Mana: itemBonusText = "+" + BonusValue + " Mana"; break; case EnumPossibleBonusStats.ManaPercent: itemBonusText = "+" + BonusValue + "% Mana"; break; case EnumPossibleBonusStats.ManaRegeneration: itemBonusText = "+" + BonusValue + " Manaregeráció"; break; case EnumPossibleBonusStats.HealthRegeneration: itemBonusText = "+" + BonusValue + " Életregeráció"; break; case EnumPossibleBonusStats.Intelligence: itemBonusText = "+" + BonusValue + " Intelligencia"; break; case EnumPossibleBonusStats.SpellPower: itemBonusText = "+" + BonusValue + " Varázserő"; break; case EnumPossibleBonusStats.SpellPowerPercent: itemBonusText = "+" + BonusValue + "% Varázserő"; break; } return(itemBonusText); }