Example #1
0
        public ActionResult RegisterMechanic()
        {
            RegisterMechanicViewModel model = new RegisterMechanicViewModel();

            model.RoleName = RoleService.MECHANIC;
            return(View("~/Areas/Admin/Views/Mechanic/Register", model));
        }
Example #2
0
        public ActionResult RegisterMechanic(RegisterMechanicViewModel model)
        {
            if (!ModelState.IsValid)
            {
                Helpers.InvalidModelState(ModelState);
            }
            var mechanicId = _mechanicService.RegisterMechanic(model);

            return(Json(mechanicId));
        }
Example #3
0
        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" }));
        }
Example #4
0
        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));
        }
Example #5
0
        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);
        }