public Contact Add(Contact contact)
 {
     var sql =
         "INSERT INTO Person.Contact (FirstName, LastName) VALUES(@FirstName, @LastName); " +
         "SELECT CAST(SCOPE_IDENTITY() as int)";
     var id = this.db.Query<int>(sql, contact).Single();
     contact.ContactID = id;
     return contact;
 }
 public Contact Update(Contact contact, int key)
 {
     var sql =
         "UPDATE Person.Contact " +
         "SET FirstName = @FirstName, " +
         "    LastName  = @LastName, " +
         "    Email     = @Email, " +
         "    Company   = @Company, " +
         "    Title     = @Title " +
         "WHERE ContactID = @Id";
     this.db.Execute(sql, contact);
     return contact;
 }
 public void Delete(Contact contact)
 {
     this.db.Execute("DELETE FROM Person.Contact WHERE Id = @Id", new { contact.ContactID });
 }
 public Task<Contact> UpdateAsync(Contact updated, int key)
 {
     throw new NotImplementedException();
 }
 public Task<int> DeleteAsync(Contact t)
 {
     throw new NotImplementedException();
 }
 public Task<Contact> AddAsync(Contact t)
 {
     throw new NotImplementedException();
 }