public static Customer Register(RegisterCustomerParameterSet parameterSet) { var customer = new Customer(); customer._id = Guid.NewGuid(); customer._forename = parameterSet.Forename; customer._surname = parameterSet.Surname; customer._addressLine1 = parameterSet.AddressLine1; customer._addressLine2 = parameterSet.AddressLine2; customer._addressLine3 = parameterSet.AddressLine3; customer._town = parameterSet.Town; customer._county = parameterSet.County; customer._postCode = parameterSet.PostCode; customer._email = parameterSet.Email; customer._telephoneNumber = parameterSet.TelephoneNumber; customer._createdOn = DateTime.Now; customer._createdBy = parameterSet.CurrentUser; customer._deleted = false; return(customer); }
protected static Booking Make(MakeBookingParameterSet parameterSet) { var booking = new Booking(); booking.Id = Guid.NewGuid(); booking._pickUp = parameterSet.PickUp.Value; //Won't be null because will have been caught by exception above. booking._dropOff = parameterSet.DropOff.Value; //Won't be null because will have been caught by exception above. booking._bus = parameterSet.Bus; booking._numberOfAdults = parameterSet.NumberOfAdults; booking._numberOfChildren = parameterSet.NumberOfChildren; booking._isMainDriver = parameterSet.IsMainDriver; booking._drivingLicenceNumber = parameterSet.DrivingLicenceNumber; booking._driverForename = parameterSet.DriverForename; booking._driverSurname = parameterSet.DriverSurname; booking._createdBy = parameterSet.CurrentUser; var registerCustomerParameterSet = RegisterCustomerParameterSet.MapFrom(parameterSet); booking._customer = Customer.Register(registerCustomerParameterSet); booking._createdOn = parameterSet.CreatedOn; booking._deleted = false; parameterSet.Bus.Bookings.Add(booking); return(booking); }
protected static ValidationMessageCollection ValidateMake(MakeBookingParameterSet parameterSet) { var validationMessages = new ValidationMessageCollection(); if (!parameterSet.PickUp.HasValue || parameterSet.PickUp.Value == default(DateTime)) { validationMessages.AddError("PickUp", "Pick up date is required."); } else { if (parameterSet.PickUp.Value < DateTime.Now.Date) { validationMessages.AddError("PickUp", "Pick up date must not be in the past."); } } if (!parameterSet.DropOff.HasValue || parameterSet.DropOff == default(DateTime)) { validationMessages.AddError("DropOff", "Drop off date is required."); } else { if (parameterSet.DropOff.Value < DateTime.Now) { validationMessages.AddError("DropOff", "Drop off date must not be in the past."); } } if (parameterSet.PickUp.HasValue && parameterSet.DropOff.HasValue) { if (parameterSet.DropOff.Value < parameterSet.PickUp.Value) { validationMessages.AddError("DropOff", "Drop off date must not be before pickup date."); } } if (parameterSet.Bus == null) { validationMessages.AddError("Bus", "Bus is required."); } if (parameterSet.NumberOfAdults <= 0) { validationMessages.AddError("NumberOfAdults", "Booking must be for 1 or more adults."); } if (string.IsNullOrEmpty(parameterSet.DrivingLicenceNumber)) { validationMessages.AddError("DrivingLicenceNumber", "Driving licence number is required."); } if (parameterSet.Bus != null && parameterSet.PickUp.HasValue && parameterSet.DropOff.HasValue && parameterSet.Bus.GetConflictingBookings(parameterSet.PickUp.Value, parameterSet.DropOff.Value).Any()) { validationMessages.AddError("", "Booking conflicts with existing bookings."); } var registerCustomerParameterSet = RegisterCustomerParameterSet.MapFrom(parameterSet); validationMessages.AddRange(Customer.ValidateRegister(registerCustomerParameterSet)); return(validationMessages); }
public static ValidationMessageCollection ValidateRegister(RegisterCustomerParameterSet parameterSet) { var validationMessages = new ValidationMessageCollection(); if (string.IsNullOrEmpty(parameterSet.Forename)) { validationMessages.AddError("Forename", "Forename is required."); } else { if (parameterSet.Forename.Length > 50) { validationMessages.AddError("Forename", "Forename must be 50 characters or less."); } } if (string.IsNullOrEmpty(parameterSet.Forename)) { validationMessages.AddError("Surname", "Surname is required."); } else { if (parameterSet.Surname.Length > 50) { validationMessages.AddError("Surname", "Surname must be 50 characters or less."); } } if (string.IsNullOrEmpty(parameterSet.AddressLine1)) { validationMessages.AddError("AddressLine1", "Address line 1 is required."); } else { if (parameterSet.AddressLine1.Length > 50) { validationMessages.AddError("AddressLine1", "Address line 1 must be 50 characters or less."); } } if (parameterSet.AddressLine2 != null && parameterSet.AddressLine2.Length > 50) { validationMessages.AddError("AddressLine2", "Address line 2 must be 50 characters or less."); } if (parameterSet.AddressLine3 != null && parameterSet.AddressLine3.Length > 50) { validationMessages.AddError("AddressLine3", "Address line 3 must be 50 characters or less."); } if (string.IsNullOrEmpty(parameterSet.Town)) { validationMessages.AddError("Town", "Town is required."); } else { if (parameterSet.Town.Length > 50) { validationMessages.AddError("Town", "Town must be 50 characters or less."); } } if (parameterSet.County != null && parameterSet.County.Length > 50) { validationMessages.AddError("County", "County must be 50 characters or less."); } var rxPostCode = new Regex( @"^(([gG][iI][rR] {0,}0[aA]{2})|((([a-pr-uwyzA-PR-UWYZ][a-hk-yA-HK-Y]?[0-9][0-9]?)|(([a-pr-uwyzA-PR-UWYZ][0-9][a-hjkstuwA-HJKSTUW])|([a-pr-uwyzA-PR-UWYZ][a-hk-yA-HK-Y][0-9][abehmnprv-yABEHMNPRV-Y]))) {0,}[0-9][abd-hjlnp-uw-zABD-HJLNP-UW-Z]{2}))$"); if (string.IsNullOrEmpty(parameterSet.PostCode)) { validationMessages.AddError("PostCode", "Post code is required."); } else { if (!rxPostCode.IsMatch(parameterSet.PostCode)) { validationMessages.AddError("PostCode", "Post code is not valid."); } } if (string.IsNullOrEmpty(parameterSet.Email)) { validationMessages.AddError("Email", "Email is required."); } else if (parameterSet.Email.Length > 50) { validationMessages.AddError("Email", "Email must be 50 characters or less."); } else { var rxNonStrictEmail = new Regex(@"[A-Za-z0-9\.-_\+]+@[A-Za-z0-9\.-_\+]+"); if (!rxNonStrictEmail.IsMatch(parameterSet.Email)) { validationMessages.AddError("Email", "Email is not valid."); } } if (string.IsNullOrEmpty(parameterSet.TelephoneNumber)) { validationMessages.AddError("TelephoneNumber", "Telephone number is required."); } else { if (parameterSet.TelephoneNumber.Length > 50) { validationMessages.AddError("TelephoneNumber", "Telephone number must be 50 characters or less."); } } return(validationMessages); }