Пример #1
0
        public async Task <ActionResult> NewEmployee(CreateEmployeeViewModel employee)
        {
            if (ModelState.IsValid)
            {
                var res = await createEmployeeCommand.Create(employee);

                if (res.Successful)
                {
                    NotificationsController.AddNotification(this.User.SafeUserName(), $"{employee.Email} has been created.");
                    return(RedirectToAction(nameof(NewEmployee)));
                }
                else
                {
                    foreach (var err in res.Errors)
                    {
                        ModelState.AddModelError(string.Empty, err);
                    }
                }
            }

            employee.AvailableJobs = await jobService.GetAsync();

            employee.AvailableRoles = await employeeService.GetAllRoles();

            return(View("NewEmployee", employee));
        }
Пример #2
0
        public async Task <ActionResult> NewEmployee()
        {
            var allJobs = await jobService.GetAsync();

            var roles = await employeeService.GetAllRoles();

            var vm = new CreateEmployeeViewModel()
            {
                AvailableJobs  = allJobs,
                AvailableRoles = roles
            };

            return(View("NewEmployee", vm));
        }
Пример #3
0
        public async Task <Result> Create(CreateEmployeeViewModel employee)
        {
            var userRole = employee.SelectedRole;
            var user     = new IdentityUser {
                UserName = employee.Email, Email = employee.Email
            };
            var passwordsMatch = employee.Password.Equals(employee.PasswordConfirm);

            if (!passwordsMatch)
            {
                return(new Result(false, "Passwords don't match"));
            }
            var isNewEmployee = (await userManager.FindByNameAsync(employee.Email)) == null;

            if (!passwordsMatch)
            {
                return(new Result(false, $"{employee.Email} has already been created."));
            }

            var result = await userManager.CreateAsync(user, employee.Password);

            if (result.Succeeded)
            {
                var employeesJobs = employee.SelectedJobs == null ? new List <int>() : employee.SelectedJobs.Select(x => int.Parse(x)).ToList();
                await userManager.AddToRoleAsync(user, userRole);

                employeeService.Save(new EmployeeDTO()
                {
                    UserName   = employee.Email,
                    AssignJobs = employeesJobs,
                    Role       = userRole,
                    First      = employee.FirstName,
                    Last       = employee.LastName,
                    IsExempt   = employee.IsExempt,
                });
                return(new Result(true));
            }
            else
            {
                return(new Result(false, result.Errors.Select(err => $"{ err.Code}-{err.Description}").ToArray()));
            }
        }