/// <summary> /// Creates the user into the database /// </summary> /// <param name="gatewayDTO"> contains the info to create a user </param> /// <returns>status of the creation</returns> public bool Create(RegGatewayDTO gatewayDTO) { if (gatewayDTO == null) { return(false); } var gateway = new RegistrationGateway(); return(gateway.Create(gatewayDTO)); }
/// <summary> /// Validates the user credentials of the registraion information /// </summary> /// <param name="userCred"> User Credentials of the registration information </param> /// <returns> status if the credentials are valid based on business rules </returns> public bool ValidateUserCred(UserCredential userCred) { var messages = new List <string>(); // Returns error if user credentials are null if (userCred == null) { Response.isSuccessful = false; messages.Add(AccountConstants.REGISTRATION_INVALID); Response.Messages = messages; return(false); } var validator = new UserCredValidator(); var results = validator.Validate(userCred); IList <ValidationFailure> failures = results.Errors; // Returns any error messages if there was any when validating if (failures.Any()) { foreach (ValidationFailure failure in failures) { messages.Add(failure.ErrorMessage); } Response.isSuccessful = false; Response.Messages = messages; return(false); } var dto = new UsernameDTO() { Username = userCred.Username }; // Checks username in the database var gateway = new RegistrationGateway(); var gatewayResponse = gateway.CheckUserName(dto); // Return error if theres any error messages if (!gatewayResponse.isSuccessful) { Response.isSuccessful = false; Response.Messages = gatewayResponse.Messages; return(false); } return(true); }
/// <summary> /// Validates the Security Questions and Answers of the Registration Information /// </summary> /// <param name="questions"> List of Security questions with answers </param> /// <returns> status if the security questions and answers are valid based on business rules </returns> public bool ValidateQandAs(List <SecurityQuestion> questions) { var messages = new List <string>(); // Returns error if questions if null if (questions == null) { Response.isSuccessful = false; messages.Add(AccountConstants.QUESTION_INVALID_ERROR); Response.Messages = messages; return(false); } var validator = new SecurityQuestionValidator(); var results = validator.Validate(questions); // Checks if questions and answers fits the required length var failures = results.Errors; if (failures.Any()) { foreach (ValidationFailure failure in failures) { messages.Add(failure.ErrorMessage); } Response.isSuccessful = false; Response.Messages = messages; return(false); } // Retrieves the questions from the database RegistrationGateway gateway = new RegistrationGateway(); var gatewayResponse = gateway.GetQuestions(); if (!gatewayResponse.isSuccessful) { Response.isSuccessful = false; Response.Messages = gatewayResponse.Messages; return(false); } else { // Goes through each user's question and checks if its in the list of retrieved question var retrievedQuestions = gatewayResponse.Questions; foreach (SecurityQuestion question in questions) { if (!retrievedQuestions.Contains(question.Question)) { Response.isSuccessful = false; messages.Add(AccountConstants.QUESTION_INVALID_ERROR); Response.Messages = messages; return(false); } else { // Removes the question from retrieved to catch duplicates retrievedQuestions.Remove(question.Question); } } } return(true); }