public ActionResult Register(registerViewModel model, HttpPostedFileBase file) { bool hasError = false; ViewBag.username = model.UserName; ViewBag.identifier = mem.imRegistering(true); int countLanguageValid = (from lang in user.languages where lang.languageID == model.languageDefined select lang).Count(); int countProfile = (from us in user.UserProfiles where us.UserName == model.UserName select us).Count(); if (countProfile > 0) { if ((from def in user.userDefinition join use in user.UserProfiles on def.usernameFK equals use where use.UserName == model.UserName select def.isArchived).First()) { ModelState.AddModelError("", "This username is archived currently, please try an alternative"); hasError = true; } } if (countLanguageValid < 1) { hasError = true; ModelState.AddModelError("", "Please check your language is valid"); } if (model.Password != null) { if (model.Password.Length < 8 || sec.checkLower(model.Password) == false || sec.checkUpper(model.Password) == false || sec.containsNumber(model.Password) == false) { hasError = true; ModelState.AddModelError("", "Your passwords does not pass the validation rules"); } if (model.Password != model.ConfirmPassword) { ModelState.AddModelError("", "Your passwords must match"); hasError = true; } } if (model.UserName != null && model.UserName.Length < 4) { ModelState.AddModelError("", "Your username must be at least 4 characters long"); hasError = true; } { if (model.securityQuestionID == -1) { ModelState.AddModelError("", "A security question must be selected"); hasError = true; } bool validPersonType = mem.personTypeValid(model.personType); if (validPersonType == false) { ModelState.AddModelError("", "Your person type is not recognised"); hasError = true; } if (hasError) { return View(new registerViewModel()); } UsersContext yt = new UsersContext(); if (ModelState.IsValid && hasError == false) { // Attempt to register the user try { memadd.registerUser(model, false); loginViewModel loggingIn = new loginViewModel(); loggingIn.UserName = model.UserName; loggingIn.Password = model.Password; loggingIn.RememberMe = true; Login(loggingIn, "/Member/memberDetails/"); user.SaveChanges(); // memadd.addUsage(model.UserName); files.updateImage(file, model.UserName, "member"); { ViewBag.Title = "Welcome " + WebSecurity.CurrentUserName + " check your details here"; return RedirectToAction("memberDetails", "member"); } } catch (MembershipCreateUserException e) { ModelState.AddModelError("", ErrorCodeToString(e.StatusCode)); } } // If we got this far, something failed, redisplay form return View(model); } }
public PartialViewResult Login(loginViewModel model, string retrunurl) { ViewBag.archived = false; bool hasError = false; if ((from def in user.userDefinition join use in user.UserProfiles on def.usernameFK equals use where use.UserName == model.UserName where def.isArchived == true where def.archiveHash != "" select def).Count() > 0) { ViewBag.archived = true; ViewBag.url = "/Account/restore?username="******"&password="******"_LoginPartial", model); } var isUserDefined = (from def in user.userDefinition join use in user.UserProfiles on def.usernameFK equals use where use.UserName == model.UserName select def).Count(); if (ModelState.IsValid) { if (isUserDefined > 0) { var login = WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe); if (login) { ViewBag.isLoggedIn = 1; user.SaveChanges(); memadd.addUsage(model.UserName); } if (login == false) { ModelState.AddModelError("logging", "The user name or password provided is incorrect."); hasError = true; } } //return RedirectToAction("myFeed", "member"); } var UserArchived = user.userArchive.Where(m => m.usernameFK.UserName == model.UserName).Count(); int archiveCount = 1; if (isUserDefined == 1) { archiveCount = (from use in user.userDefinition where use.usernameFK.UserName == model.UserName where use.isArchived == true select use).Count(); } if ((UserArchived > 0 && archiveCount == 1) || UserArchived > 1 && archiveCount == 0) { ModelState.AddModelError("logging", "Your account has been marked as archived"); hasError = true; } if (hasError) { return PartialView("_LoginPartial", model); } ViewBag.isLoggedIn = 0; //If we got this far, something failed, redisplay form return PartialView("_LoginPartial", model); }