Ejemplo n.º 1
0
        public async Task <IActionResult> CreateEmployee(EmployeeViewModel model)
        {
            if (ModelState.IsValid)
            {
                var directoryPath = _host.WebRootPath + "/images/EmployeesProfilePictures/";
                var filePath      = directoryPath + $"{model.FullName.Replace(" ", "")}.jpg";

                if (!Directory.Exists(directoryPath))
                {
                    Directory.CreateDirectory(directoryPath);
                }

                using (var stream = new FileStream(filePath, FileMode.Create))
                {
                    await model.ProfilePicture.CopyToAsync(stream);
                }

                var employee = new Employee
                {
                    CreatedOn         = DateTime.UtcNow,
                    FullName          = model.FullName,
                    FacebookUrl       = model.FacebookUrl,
                    JobPosition       = model.JobPosition,
                    ShortDescription  = model.ShortDescription,
                    IsFired           = false,
                    ProfilePictureUrl = "/images/EmployeesProfilePictures/" + $"{model.FullName.Replace(" ", "")}.jpg"
                };

                await _employeeManager.CreateEmployeeAsync(employee);

                return(Redirect("/Employee/"));
            }

            return(View(model));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Register(RegisterViewModel model, string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;

            if (ModelState.IsValid)
            {
                var employee        = Mapper.Map <RegisterViewModel, Employee>(model);
                var IsAdministrator = User.IsInRole("administrator");
                var IsManager       = User.IsInRole("manager");
                var roleName        = IsAdministrator ? "manager" : "employee";

                if (IsManager)
                {
                    var manager = await _employeeManager.GetEmployeeByUserNameAsync(User.Identity.Name);

                    employee.ManagerId = manager.Id;
                }
                var result = await _employeeManager.CreateEmployeeAsync(employee, new string[] { roleName }, model.Password);

                if (result.Item1)
                {
                    _logger.LogInformation("User created a new account with password.");
                    return(RedirectToLocal(returnUrl));
                }
                AddErrors(result.Item2);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Ejemplo n.º 3
0
        private async Task <Employee> CreateEmployeeAsync(string password, int employeeNumber, string firstName, string lastName, string email, string phoneNumber, string[] roles)
        {
            Employee applicationUser = new Employee
            {
                FirstName      = firstName,
                LastName       = lastName,
                Email          = email,
                EmployeeNumber = employeeNumber,
                PhoneNumber    = phoneNumber,
                EmailConfirmed = true,
                IsEnabled      = true,
                CreatedDate    = DateTime.Now.Date
            };

            var result = await _employeeManager.CreateEmployeeAsync(applicationUser, roles, password);

            if (!result.Item1)
            {
                throw new Exception($"Seeding \"{email}\" user failed. Errors: {string.Join(Environment.NewLine, result.Item2)}");
            }


            return(applicationUser);
        }