public void SaveContact(Contact contact) { ValidateContact(contact); if (contact.ContactID == 0) { ContactDAL.InsertContact(contact); } else { ContactDAL.UpdateContact(contact); } }
//Validerar Contact-objektet, skulle behöva förbättras på vissa punkter //Lagrar olika felmeddelanden i en Exception som kastas om valideringen inte går igenom. private void ValidateContact(Contact contact) { var ex = new ArgumentException(); var reEmail = new Regex(@"^[a-z][a-z0-9_\-~]*(\.[a-z0-9_\-~]+)?@([a-z0-9_\-]+\.){1,2}[a-z]{2,6}$"); var reName = new Regex(@"^[a-zA-ZåäöÅÄÖ\- ]+$"); if (contact.EmailAddress == null) { ex.Data.Add("EmailAddressEmpty", "E-mail address is required"); } else if (contact.EmailAddress.Length > 50) { ex.Data.Add("EmailAddressLength", "E-mail address is too long"); } else if (!reEmail.IsMatch(contact.EmailAddress)) { ex.Data.Add("FirstNameCharacters", "E-mail address is not valid."); } if (contact.FirstName.Length > 50) { ex.Data.Add("FirstNameLength", "The first name is too long"); } else if (!reName.IsMatch(contact.FirstName)) { ex.Data.Add("FirstNameCharacters", "The first name contains invalid characters."); } if (contact.LastName.Length > 50) { ex.Data.Add("LastNameLength", "The last name is too long"); } else if (!reName.IsMatch(contact.LastName)) { ex.Data.Add("LastNameCharacters", "The last name contains invalid characters."); } if (ex.Data.Count > 0) { throw ex; } }
public void lvContact_InsertItem(Contact contact) { Validate("InsertGroup"); //causesvalidation=true på "lägg till"-kontrollen verkar bara validera mot modelstate vsErrors1.ShowModelStateErrors = true; if (IsValid) { //Om ModelState inte validerar måste felmeddelanden visas. //ShowModelStateErrors är satt till false i utgångsläget för att inte visa både meddelanden //från validation-kontrollerna och från modelstatevalideringen samtidigt. //Om validation-kontrollerna validerar till true måste modelstateerrors visas. //vsErrors1.ShowModelStateErrors = true; if (ModelState.IsValid) { try { Service.SaveContact(contact); SuccessMessage = "Kontakten har lagts till."; ShowSuccessMessage(); } catch (Exception ex) { HandleException(ex); } } else { } } else { //sätt showmodelstateerrors till false igen om validation-kontrollerna inte valideras till true. //vsErrors1.ShowModelStateErrors = false; } }
public void DeleteContact(Contact contact) { ContactDAL.DeleteContact(contact.ContactID); }
public void lvContact_UpdateItem(Contact contact) { Validate("EditGroup"); //causesvalidation=true på "lägg till"-kontrollen verkar bara validera mot modelstate vsErrors2.ShowModelStateErrors = true; if (IsValid) { //Om ModelState inte validerar måste felmeddelanden visas. //ShowModelStateErrors är satt till false i utgångsläget för att inte visa både meddelanden //från validation-kontrollerna och från modelstatevalideringen samtidigt. //Om validation-kontrollerna validerar till true måste modelstateerrors visas. //vsErrors2.ShowModelStateErrors = true; if (ModelState.IsValid) { try { var existingContact = Service.GetContact(contact.ContactID); if (contact == null) { ModelState.AddModelError("", String.Format("Kontakt med kontakt-id {0} kunde inte hittas.", contact.ContactID)); //AddValidatorControl(String.Format("Kontakt med kontakt-id {0} kunde inte hittas.", contact.ContactID)); return; } Service.SaveContact(contact); SuccessMessage = "Kontakten har uppdaterats."; ShowSuccessMessage(); } catch (Exception ex) { HandleException(ex); } } } else { //sätt showmodelstateerrors till false igen om validation-kontrollerna inte valideras till true. //vsErrors2.ShowModelStateErrors = false; } }