public ActionResult Register(RegisterModel model)
        {
            this.logger.Info("Entering: " + System.Reflection.MethodBase.GetCurrentMethod().ReflectedType.FullName + ": " + System.Reflection.MethodBase.GetCurrentMethod().Name + " --> " + User.Identity.Name);

            if (ModelState.IsValid) {
                // Attempt to register the user
                try {
                    WebSecurity.CreateUserAndAccount(model.UserName, model.Password, propertyValues: new {
                        LastName = model.LastName,
                        FirstName = model.FirstName,
                        MiddleName = model.MiddleName,
                        Email = model.Email,
                        StudentIdentificationNumber = model.StudentIdentificationNumber
                    });
                    WebSecurity.Login(model.UserName, model.Password);
                    return RedirectToAction("Index", "Home");
                }
                catch (MembershipCreateUserException e) {
                    ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
                }
            }

            // If we got this far, something failed, redisplay form
            return View(model);
        }
 /// <summary>
 /// Registers the user.
 /// </summary>
 /// <param name="csvLine">The CSV line.</param>
 /// <param name="userRole">The user role.</param>
 /// <exception cref="CustomException">
 /// Insufficient fields to create a user
 /// or
 /// </exception>
 private void RegisterUser(string csvLine, string userRole)
 {
     try {
         string[] userFields = csvLine.Split(',');
         if (userFields.Length != 6)
             throw new CustomException("Insufficient fields to create a user");
         string password = PasswordGenerator.GetNewPassword(6);
         //register new user
         RegisterModel model = new RegisterModel() { UserName = userFields[0], FirstName = userFields[1], LastName = userFields[2], MiddleName = userFields[3], Email = userFields[4], StudentIdentificationNumber = userFields[5], Password = password };
         WebMatrix.WebData.WebSecurity.CreateUserAndAccount(model.UserName, model.Password, propertyValues: new {
             LastName = model.LastName,
             FirstName = model.FirstName,
             MiddleName = model.MiddleName,
             Email = model.Email,
             StudentIdentificationNumber = model.StudentIdentificationNumber
         });
         //assign chosen role to user
         Roles.AddUserToRole(userFields[0], userRole);
         //notify user by mail
         this.mailUtil.SendEmail(model.Email, "Account detail", "A new password was created for your Elearning platform account. Username:"******" Password:" + model.Password);
     }
     catch (InvalidOperationException ioe) {
         throw new CustomException(ioe.Message);
     }
 }