int InsertIntoPacketTable(Packet p, Guid sourceID, Guid targetID, int subPacketType)
{
int retVal = -1;
lock (lockingObject2)
{
using (SqlCommand cmd =
new SqlCommand("INSERT INTO Packets (SourceID, TargetID, Length, Origin, Unknown, PayloadLength, PacketType, SubPacketType, Payload) "
+ "VALUES (@SourceID, @TargetID, @Length, @Origin, @Unknown, @PayloadLength, @PacketType, @SubPacketType, @Payload); SELECT SCOPE_IDENTITY();",
ActiveConnection))
{
int packType = (int)p.PacketType;
cmd.Parameters.AddWithValue("@SourceID", sourceID.ToString());
cmd.Parameters.AddWithValue("@TargetID", targetID.ToString());
cmd.Parameters.AddWithValue("@Length", p.Length);
cmd.Parameters.AddWithValue("@Origin", (int)p.Origin);
cmd.Parameters.AddWithValue("@Unknown", p.Padding);
cmd.Parameters.AddWithValue("@PayloadLength", p.PayloadLength);
cmd.Parameters.AddWithValue("@PacketType", packType);
cmd.Parameters.AddWithValue("@SubPacketType", subPacketType);
cmd.Parameters.AddWithValue("@Payload", p.Payload.GetBuffer());
decimal insertedID = (decimal)cmd.ExecuteScalar();
retVal = Convert.ToInt32(insertedID);
}
}
return retVal;
}