Code:
internal void AppendPetsUpdateString(IQueryAdapter dbClient)
{
List<uint> list = new List<uint>();
foreach (Pet pet in this.GetPets())
{
if (!list.Contains(pet.PetId))
{
list.Add(pet.PetId);
if (pet.DBState == DatabaseUpdateState.NeedsInsert)
{
QueryChunk chunk = new QueryChunk("INSERT INTO user_pets (id,user_id,room_id,name,type,race,color,expirience,energy,createstamp,nutrition,respect,z,y,z) VALUES ");
chunk.AddParameter("name", pet.Name);
chunk.AddParameter("race", pet.Race);
chunk.AddParameter("color", pet.Color);
chunk.AddQuery(string.Concat(new object[] {
"(", pet.PetId, ",", pet.OwnerId, ",", pet.RoomId, ",@name,", pet.Type, ",@race,@color,0,100,'", pet.CreationStamp,
"',0,0,0,0,0)"
}));
chunk.Execute(dbClient);
chunk.Dispose();
if (chunk != null)
chunk = null;
}
else if (pet.DBState == DatabaseUpdateState.NeedsUpdate)
{
QueryChunk chunk2 = new QueryChunk();
chunk2.AddQuery(string.Concat(new object[] {
"UPDATE user_pets SET room_id = ", pet.RoomId, ", name = @name, race = @race, color = @color, type = ", pet.Type, ", expirience = ", pet.Expirience, ", energy = ", pet.Energy, ", nutrition = ", pet.Nutrition,
", respect = ", pet.Respect, ", createstamp = '", pet.CreationStamp, "', x = ", pet.X, ", Y = ", pet.Y, ", Z = ", pet.Z, " WHERE id = ", pet.PetId
}));
chunk2.AddParameter("name", pet.Name);
chunk2.AddParameter("race", pet.Race);
chunk2.AddParameter("color", pet.Color);
chunk2.Execute(dbClient);
chunk2.Dispose();
if (chunk2 != null)
chunk2 = null;
}
pet.DBState = DatabaseUpdateState.Updated;
}
}
}