Ejemplo n.º 1
0
        public IActionResult Register(RegisterEmployeeBindingModel bm)
        {
            var expLevels = new[] { "A", "B", "C", "D" };

            if (!expLevels.Contains(bm.ExperinceLevel))
            {
                ModelState.AddModelError("ExperinceLevel", "Experince Level must be \"A\", \"B\", \"C\", \"D\"");
                var companies = CompanyServices.GetAllCompanies();
                return(this.View(companies));
            }

            var employee = this.Mapper.Map <Employee>(bm);

            this.EmployeeServices.AddEmployee(employee);
            return(RedirectToAction("Details", new { id = employee.Id, slug = employee.Name }));
        }
Ejemplo n.º 2
0
        public async Task <IHttpActionResult> RegisterEmployee(RegisterEmployeeBindingModel model)
        {
            // Adding one day because of the bug with the Daylight Saving Time
            model.DateOfBirth = model.DateOfBirth.AddDays(1);

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            RegisterUserBindingModel employeeToUserBM        = AutoMapper.Mapper.Map <RegisterUserBindingModel>(model);
            IHttpActionResult        resultOfUserRegistering = await this.Register(employeeToUserBM);

            if (typeof(OkNegotiatedContentResult <string>) != resultOfUserRegistering.GetType())
            {
                return(resultOfUserRegistering);
            }

            var  userId = (resultOfUserRegistering as OkNegotiatedContentResult <string>).Content;
            User user   = await _context.Users.FirstOrDefaultAsync(u => u.Id == userId);

            var rolesForEmployee      = new[] { "Employee" };
            var resultOfAddingToRoles = await SafelyAddUserToRole(rolesForEmployee, user.Id);

            if (resultOfAddingToRoles == false)
            {
                return(InternalServerError(new Exception("Adding user to role failed.")));
            }

            try
            {
                Employee newEmployee = AutoMapper.Mapper.Map <RegisterEmployeeBindingModel, Employee>(model);
                newEmployee.User   = user;
                newEmployee.UserId = user.Id;

                _context.Employees.Add(newEmployee);
                _context.SaveChanges();
            }
            catch (Exception e)
            {
                InternalServerError(e);
                throw;
            }

            return(Ok());
        }