public ActionResult BatchFile(HttpPostedFileBase file) { // Verify that the user selected a file if (file != null && file.ContentLength > 0) { using (var sr = new StreamReader(file.InputStream, System.Text.Encoding.Default)) { string fileText = sr.ReadToEnd(); string[] lineValues = fileText.Split(new[] { ';', '\r' }) .Select(a => a.Trim()).ToArray(); // Remove last line if its empty int nrOfLines = lineValues.Length; if (lineValues[lineValues.Length - 1] == "") nrOfLines--; var model = new BatchRegisterViewModel(); for (int i = 0; i < nrOfLines; i += 6) { var user = new BatchRegisterModel(); user.UserName = GenerateUserName(lineValues[i], lineValues[i + 1]); user.Password = GeneratePassword(8); user.Email = lineValues[i + 4]; user.UserGroup = lineValues[i + 5]; model.registerList.Add(user); } return View(model); } } return View(); }
public ActionResult BatchRegister(BatchRegisterViewModel model) { if (ModelState.IsValid) { foreach (var user in model.registerList) { // Attempt to register the user try { WebSecurity.CreateUserAndAccount(user.UserName, user.Password, new { Email = user.Email }); Roles.AddUserToRole(user.UserName, model.role); } catch (MembershipCreateUserException e) { ModelState.AddModelError("", ErrorCodeToString(e.StatusCode)); } } } return RedirectToAction("Index"); }