private static Contact InsertContact(DSModel db, KeyBinder key, ContactModel model)
 {
     Contact poco = new Contact();
     poco.ContactName = model.ContactName;
     poco.ContactPhone = model.ContactPhone;
     poco.ContactEmail = model.ContactEmail;
     db.Add(poco);
     key.AddKey(poco, model, model.GetName(p => p.ContactID));
     return poco;
 }
        private static Contact UpdateContact(DSModel db, KeyBinder key, ContactModel model)
        {
            var poco = db.Contacts.Where(c => c.ContactID == model.ContactID).FirstOrDefault();
            if (poco == null)
                throw new ArgumentException("No contact with the specified ID!");

            poco.ContactName = model.ContactName;
            poco.ContactPhone = model.ContactPhone;
            poco.ContactEmail = model.ContactEmail;
            return poco;
        }
        public static Contact SaveContact(DSModel db, KeyBinder key, ContactModel model)
        {
            if (db == null)
                throw new ArgumentNullException("db");
            if (key == null)
                throw new ArgumentNullException("key");
            if (model == null)
                throw new ArgumentNullException("model");

            if (model.ContactID == 0)
                return InsertContact(db, key, model);
            else
                return UpdateContact(db, key, model);
        }