public ActionResult RegisterMechanic() { RegisterMechanicViewModel model = new RegisterMechanicViewModel(); model.RoleName = RoleService.MECHANIC; return(View("~/Areas/Admin/Views/Mechanic/Register", model)); }
public ActionResult RegisterMechanic(RegisterMechanicViewModel model) { if (!ModelState.IsValid) { Helpers.InvalidModelState(ModelState); } var mechanicId = _mechanicService.RegisterMechanic(model); return(Json(mechanicId)); }
public async Task <ActionResult> RegisterMechanic(RegisterMechanicViewModel model) { if (ModelState.IsValid) { var user = new User { UserName = model.Email, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, PhoneNumber = model.PhoneNumber, RegisterationDateTime = DateTime.Now }; user.MechanicProfile = new MechanicProfile(); user.MechanicProfile.CNIC = model.CNIC; if (UserManager.Users.Any(u => u.PhoneNumber == model.PhoneNumber)) { TempData["model"] = model; TempData["modelStateErrors"] = ModelState.SelectMany(x => x.Value.Errors); return(RedirectToAction("Register", "Mechanic", new { area = "Admin" })); } IdentityRole role = RoleService.GetRoleByName(model.RoleName); if (role == null) { TempData["model"] = model; TempData["modelStateErrors"] = ModelState.SelectMany(x => x.Value.Errors); return(RedirectToAction("Register", "Mechanic", new { area = "Admin" })); } user.Roles.Add(new IdentityUserRole { RoleId = role.Id, UserId = user.Id } ); var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); return(RedirectToAction("Index", "Mechanic", new { area = "Admin" })); } AddErrors(result); } TempData["model"] = model; TempData["modelStateErrors"] = ModelState.SelectMany(x => x.Value.Errors); return(RedirectToAction("Register", "Mechanic", new { area = "Admin" })); }
public ActionResult Register() { RegisterMechanicViewModel model = new RegisterMechanicViewModel(); if (TempData["model"] != null) { model = (RegisterMechanicViewModel)TempData["model"]; } if (TempData["modelStateErrors"] != null) { var errors = ((IEnumerable <ModelError>)TempData["modelStateErrors"]); foreach (var err in errors) { ModelState.AddModelError("", err.ErrorMessage); } } model.RoleName = RoleService.MECHANIC; return(View(model)); }
Guid IMechanicService.RegisterMechanic(RegisterMechanicViewModel model) { _unitOfWork.BeginTransaction(); var mechanic = new Mechanic(model.UserName, model.Password, model.Email, model.CompanyName, model.City, model.Country, model.PostalCode, model.Address); if (_mechanicRepository.emailTaken(mechanic)) { _unitOfWork.Commit(); throw new Exception(ExceptionMessages.MechanicException.EMAIL_TAKEN); } var isTaken = _mechanicRepository.userNameTaken(mechanic); if (isTaken) { _unitOfWork.Commit(); throw new Exception(ExceptionMessages.MechanicException.USERNAME_TAKEN); } _mechanicRepository.Add(mechanic); _unitOfWork.Commit(); return(mechanic.Id); }