public bool Claim(string DoorID, ClaimInfo Claim) { if (!_claims.ContainsKey(DoorID)) _claims.Add(DoorID, Claim); else _claims[DoorID] = Claim; return true; }
public bool Claim(string DoorID, ClaimInfo Claim) { if (null == _conn) InitConnection(); using (var cmd = new SqlCommand("MERGE INTO Claims AS A " + "USING (SELECT @DoorID AS DoorID) B ON (A.DoorID = B.DoorID) " + "WHEN MATCHED THEN " + "UPDATE SET A.Name = @Name, A.Email = @Email " + "WHEN NOT MATCHED THEN " + "INSERT (DoorID, Name, Email) VALUES(@DoorID, @Name, @Email);")) { cmd.Parameters.Add(new SqlParameter("@DoorID", DoorID)); cmd.Parameters.Add(new SqlParameter("@Name", Claim.Name)); cmd.Parameters.Add(new SqlParameter("@Email", Claim.Email)); if (_conn.State != System.Data.ConnectionState.Open) _conn.Open(); cmd.Connection = _conn; if (cmd.ExecuteNonQuery() > 0) return true; return false; } }