Ejemplo n.º 1
0
        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
            });
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        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"
            });
        }
Ejemplo n.º 4
0
        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"
            });
        }