public void SaveCustomer(Customer customer) { // Preparare validation return data ICollection<ValidationResult> validationResults; // Try to validate given data if(customer.Validate(out validationResults)) { // If a new customer should be created if(customer.CustomerId == 0) { CustomerDAL.InsertCustomer(customer); } // Existing customer should be updated else { // Check that the customer exists before update if(CustomerDAL.GetCustomerById(customer.CustomerId) == null) { throw new ApplicationException(String.Format("Kunden {0} som skulle uppdateras är tyvärr borttagen.", customer.Name)); } // Update existing customer CustomerDAL.UpdateCustomer(customer); } } // Validation failed else { // Create exception ApplicationException exception = new ApplicationException("Kundobjektet innehöll felaktiga värden. Var god försök igen."); // Add validation data to exception. exception.Data.Add("ValidationResults", validationResults); throw exception; } }
public void UpdateCustomer(Customer customer) { // Create connection object using (this.CreateConnection()) { try { SqlCommand cmd; // Connect to database cmd = this.Setup("appSchema.usp_CustomerUpdate", DALOptions.closedConnection); // Add in parameters for Stored procedure cmd.Parameters.Add("@CustomerId", SqlDbType.Int).Value = customer.CustomerId; cmd.Parameters.Add("@Name", SqlDbType.VarChar, 50).Value = customer.Name; cmd.Parameters.Add("@Address", SqlDbType.VarChar, 40).Value = customer.Address; cmd.Parameters.Add("@PostNumber", SqlDbType.VarChar, 6).Value = customer.PostNumber; cmd.Parameters.Add("@City", SqlDbType.VarChar, 30).Value = customer.City; cmd.Parameters.Add("@EmailAddress", SqlDbType.VarChar, 50).Value = customer.EmailAddress; cmd.Parameters.Add("@PhoneNumber", SqlDbType.VarChar, 20).Value = customer.PhoneNumber; cmd.Parameters.Add("@CellPhoneNumber", SqlDbType.VarChar, 20).Value = customer.CellPhoneNumber; cmd.Parameters.Add("@ParentCustomerId", SqlDbType.Int).Value = customer.ParentCustomerId; cmd.Parameters.Add("@ImageSrc", SqlDbType.VarChar, 50).Value = customer.ImageSrc; cmd.Parameters.Add("@Notes", SqlDbType.VarChar, 200).Value = customer.Notes; // Open DB connection connection.Open(); // Execute insert to database cmd.ExecuteNonQuery(); } catch { // Throw exception throw new ApplicationException(DAL_ERROR_MSG); } } }
public IHttpActionResult Post(Customer customer) { // Check for bad values, done by the data annotations in the model class. if (!ModelState.IsValid) { return BadRequest(ModelState); } // Try to save customer try { customerService.SaveCustomer(customer); } catch (DataBaseEntryNotFoundException) { return NotFound(); } catch (DuplicateNameException) { return Conflict(); } catch (ApprovedException exception) { return BadRequest(exception.Message); } catch { return InternalServerError(); } // Respond that the booking was created and redirect return Ok(customer); //CreatedAtRoute("DefaultApi", new { id = customer.CustomerId }, customer); }
// Methods public void DeleteCustomer(Customer customer) { DeleteCustomer(customer.CustomerId); }