/// <summary> /// Lägger till en kunds kunduppgifter i databasen. /// </summary> /// <param name="customer"></param> public void CustomerListView_InsertItem(Customer customer) { if (ModelState.IsValid) { try { Service.SaveCustomer(customer); } catch (Exception ex) { //var validationResults = ex.Data["ValidationResults"] as IEnumerable<ValidationResult>; //if (validationResults != null && validationResults.Any()) //{ // foreach (var validationResult in validationResults) // { // foreach (var memberName in validationResult.MemberNames) // { // ModelState.AddModelError(memberName, validationResult.ErrorMessage); // } // } //} ModelState.AddModelError(String.Empty, "Ett oväntat fel inträffade då kunduppgiften skulle läggas till."); } } }
/// <summary> /// Lägger till en kunds kunduppgifter i databasen. /// </summary> /// <param name="customer"></param> public void CustomerListView_InsertItem(Customer customer) { try { Service.SaveCustomer(customer); } catch (Exception) { ModelState.AddModelError(String.Empty, "Ett oväntat fel inträffade då kunduppgiften skulle läggas till."); } }
/// <summary> /// Spara en kunds kunduppgifter i databasen. /// </summary> /// <param name="customer">Kunduppgifter som ska sparas.</param> public void SaveCustomer(Customer customer) { // Customer-objektet sparas antingen genom att en ny post // skapas eller genom att en befintlig post uppdateras. // ====================================================== // OBS! HÄR SAKNAS VALIDERING I AFFÄRSLOGIKLAGRET!!!!! // Se senare versioner av Kundkontakter för korrekt // implementering. // ====================================================== if (customer.CustomerId == 0) // Ny post om CustomerId är 0! { CustomerDAL.InsertCustomer(customer); } else { CustomerDAL.UpdateCustomer(customer); } }
public void CustomerFormView_InsertItem(Customer customer) { if (Page.ModelState.IsValid) { try { Service.SaveCustomer(customer); // Spara (rätt)meddelande och dirigera om klienten till lista med kunder. // (Meddelandet sparas i en "temporär" sessionsvariabel som kapslas // in av en "extension method" i App_Infrastructure/PageExtensions.) // Del av designmönstret Post-Redirect-Get (PRG, http://en.wikipedia.org/wiki/Post/Redirect/Get). Page.SetTempData("SuccessMessage", "Kunden lades till."); Response.RedirectToRoute("CustomerDetails", new { id = customer.CustomerId }); Context.ApplicationInstance.CompleteRequest(); } catch (Exception) { Page.ModelState.AddModelError(String.Empty, "Fel inträffade då kunden skulle läggas till."); } } }
public void CustomerFormView_InsertItem(Customer customer) { if (ModelState.IsValid) { try { Service service = new Service(); service.SaveCustomer(customer); // Spara (rätt)meddelande och dirigera om klienten till lista med kunder. // (Meddelandet sparas i en "temporär" sessionsvariabel som kapslas // in av en "extension method" i App_Infrastructure/PageExtensions.) // Del av designmönstret Post-Redirect-Get (PRG, http://en.wikipedia.org/wiki/Post/Redirect/Get). Page.SetTempData("Message", String.Format("Kunden '{0}' lades till.", customer.Name)); Response.RedirectToRoute("Customers"); } catch (Exception) { ModelState.AddModelError(String.Empty, "Ett oväntat fel inträffade då kunduppgiften skulle läggas till."); } } }
/// <summary> /// Spara en kunds kunduppgifter i databasen. /// </summary> /// <param name="customer">Kunduppgifter som ska sparas.</param> public void SaveCustomer(Customer customer) { //var validationContext = new ValidationContext(customer); //var validationResults = new List<ValidationResult>(); //if (!Validator.TryValidateObject(customer, validationContext, validationResults, true)) //{ // // Uppfyller inte objektet affärsreglerna kastas ett undantag med // // ett allmänt felmeddelande samt en referens till samlingen med // // resultat av valideringen. // var ex = new ValidationException("Objektet klarade inte valideringen."); // ex.Data.Add("ValidationResults", validationResults); // throw ex; //} // Uppfyller inte objektet affärsreglerna... ICollection<ValidationResult> validationResults; if (!customer.Validate(out validationResults)) // Använder "extension method" för valideringen! { // Klassen finns under App_Infrastructure. // ...kastas ett undantag med ett allmänt felmeddelande samt en referens // till samlingen med resultat av valideringen. var ex = new ValidationException("Objektet klarade inte valideringen."); ex.Data.Add("ValidationResults", validationResults); throw ex; } // Customer-objektet sparas antingen genom att en ny post // skapas eller genom att en befintlig post uppdateras. if (customer.CustomerId == 0) // Ny post om CustomerId är 0! { CustomerDAL.InsertCustomer(customer); } else { CustomerDAL.UpdateCustomer(customer); } }