public RegisterViewModel GetRegistrationRecord(int accountId) { var user = UserRepository.Find(accountId); //check user is real if (user == null) { return new RegisterViewModel { Success = false, Message = $"User account {accountId} does not exist" } } ; //grab users registration record and check if it exists var registration = RegistrationRepository.Find(accountId); if (registration == null) { return new RegisterViewModel { //if no registration record for the user exists publish the //base user information from user table Success = false, Message = $"User account {accountId} registration record " + "doesn't exists", FirstName = user.FirstName, LastName = user.LastName, Email = user.Email, DriversLicenceID = "", DriversLicenceState = "", AddressLine1 = "", AddressLine2 = "", Suburb = "", State = "", Postcode = "", PhoneNumber = "" } } ; return(new RegisterViewModel { //if registration record for the user exists publish the //full user information from user table Success = true, Message = $"User account {accountId} registration record exists", FirstName = user.FirstName, LastName = user.LastName, //Email = user.Email, DriversLicenceID = registration.DriversLicenceID, DriversLicenceState = registration.DriversLicenceState, AddressLine1 = registration.AddressLine1, AddressLine2 = registration.AddressLine2, Suburb = registration.Suburb, State = registration.State, Postcode = registration.Postcode, PhoneNumber = registration.PhoneNumber }); }
/// <summary> /// Finds a user from the database and their associated registration if present /// </summary> /// <param name="id">The account ID of the user</param> /// <returns>A user object with populated registration</returns> public UserViewModel FindUser(int id) { var user = UserRepository.Find(id); //if the registration wasn't returned by the user repository then explicitly load from the //registration repository if (user.Registration == null) { user.Registration = RegistrationRepository.Find(user.AccountID); } //if the payment method wasn't returned by the user repository then explicitly load from the //registration repository if (user.PaymentMethod == null) { user.PaymentMethod = PaymentMethodRepository.Find(user.AccountID); } var viewModel = new UserViewModel(user); var openBooking = BookingRepository.FindByAccountId(user.AccountID) .FirstOrDefault(x => x.BookingStatus == Constants.BookingOpenStatus); if (openBooking != null) { viewModel.HasOpenBooking = true; viewModel.OpenBookingId = openBooking.BookingID; } return(viewModel); }
public PasswordResetResponse ResetPassword(PasswordResetRequest request) { var licence = request.LicenceNumber; var dob = request.DateOfBirth; var user = UserRepository.FindByEmail(request.Email); if (user == null) { return new PasswordResetResponse { Success = false, Message = "Password reset failed email mismatch" } } ; var registration = RegistrationRepository.Find(user.AccountID); if (registration == null) { return new PasswordResetResponse { Success = false, Message = "Password reset failed no registration" } } ; if (licence != registration.DriversLicenceID || dob != registration.DateOfBirth) { return new PasswordResetResponse { Success = false, Message = "Password reset failed drivers licence and dob" } } ; user.Password = Encryption.EncryptString(request.Password); UserRepository.Update(user); return(new PasswordResetResponse { Success = true, Message = "Password successfully reset" }); }
public InterfaceResponse UpdateRegistration(RegisterUpdateRequest request, int accountId) { //this function allows the user to send their new rego details //to update their account var user = UserRepository.Find(accountId); //check user is real if (user == null) { return new InterfaceResponse { Success = false, Message = $"User account {accountId} does not exist" } } ; var record = RegistrationRepository.Find(accountId); if (record == null) { //create a new record if no record exists currently var registration = new Registration { AccountID = user.AccountID, AddressLine1 = request.AddressLine1, AddressLine2 = request.AddressLine2, DriversLicenceID = request.LicenceNumber, DriversLicenceState = request.LicenceState, PhoneNumber = request.PhoneNumber, Postcode = request.Postcode, State = request.State, Suburb = request.Suburb }; RegistrationRepository.Add(registration); } else { //if a record exists override existing values record.AccountID = user.AccountID; user.FirstName = request.FirstName; user.LastName = request.LastName; //user.Email = request.Email; record.AddressLine1 = request.AddressLine1; record.AddressLine2 = request.AddressLine2; record.DriversLicenceID = request.LicenceNumber; record.DriversLicenceState = request.LicenceState; record.PhoneNumber = request.PhoneNumber; record.Postcode = request.Postcode; record.State = request.State; record.Suburb = request.Suburb; UserRepository.Update(user); RegistrationRepository.Update(record); } return(new InterfaceResponse { Success = true, Message = "Registration record updated" }); }