public static RegisterViewModel ValidateRegisterViewModel(RegisterViewModel viewModel) { var player = viewModel.Player; viewModel.ListOfErrorMessages.Clear(); if (string.IsNullOrEmpty(player.Email) || string.IsNullOrEmpty(player.Name) || string.IsNullOrEmpty(player.Password)) { viewModel.ListOfErrorMessages.Add("All fields are required to register."); } if (!string.IsNullOrEmpty(viewModel.RepeatPassword) && (viewModel.RepeatPassword != player.Password)) { viewModel.ListOfErrorMessages.Add("Your passwords do not match."); } if (PlayerEmailAlreadyInUse(player)) { viewModel.ListOfErrorMessages.Add("A player with this email already exists"); } return viewModel; }
public ActionResult Register(RegisterViewModel viewModel) { if (ModelState.IsValid) { viewModel = AccountControllerHelpers.ValidateRegisterViewModel(viewModel); if (viewModel.ListOfErrorMessages.Count > 0) { viewModel.Settings = this.Settings; viewModel.FormIsInvalid = true; return this.View(viewModel); } var email = viewModel.Player.Email.ToLower(); var name = viewModel.Player.Name; var password = Md5.CalculateMd5(viewModel.Player.Password); var gender = viewModel.Player.Gender; var playerCollection = this.Dbh.GetCollection<Player>("Players"); var newPlayer = new Player { Id = BsonObjectId.GenerateNewId().ToString(), Email = email, Name = name, Gender = gender, Password = password, Won = 0, Lost = 0, Played = 0 }; playerCollection.Save(newPlayer); AutoLogin(newPlayer); var response = Email.SendSimpleEmail(newPlayer.Email); // TODO: Change call to this static class return this.Redirect(Url.Action("Index", "Players") + "#" + newPlayer.Id); } return RedirectToAction("Register"); }
// GET: /Account/Register public ActionResult Register() { var viewModel = new RegisterViewModel { Player = new Player(), Settings = this.Settings }; return View(viewModel); }