public async Task<ActionResult> Register(RegisterViewModel model, HttpPostedFileBase profileImage) { string imagePath = null; if(profileImage != null && profileImage.ContentLength > 0) { var imageFileName = Path.GetFileName(profileImage.FileName); imagePath = FileHelper.NextAvailableFilename(Path.Combine(Server.MapPath(ConfigurationManager.AppSettings["UsersImgPath"]), imageFileName)); profileImage.SaveAs(imagePath); imagePath = Path.GetFileName(imagePath); } if (ModelState.IsValid) { var checkUserEmail = userMgr.ReadUser(model.Email); if(checkUserEmail != null) { ModelState.AddModelError("Email", "Email is already in use"); return View(model); } var user = userMgr.CreateUser(model.Email, model.LastName, model.FirstName, model.NickName, imagePath); var appUser = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await UserManager.CreateAsync(appUser, model.Password); if (result.Succeeded) { UserManager.AddToRole(appUser.Id, "User"); await SignInManager.SignInAsync(appUser, isPersistent: false, rememberBrowser: false); return RedirectToAction("Index", "Home"); } userMgr.DeleteUser(user.Id); AddErrors(result); ModelState.AddModelError("Password", "Password must contain a capital and a number"); } // If we got this far, something failed, redisplay form return View(model); }