public async Task <ActionResult <EmployeeResource> > CreateEmployee([FromBody] SaveEmployeeResource saveEmployeeResource)
        {
            var validator        = new SaveEmployeeResourceValidator();
            var validationResult = await validator.ValidateAsync(saveEmployeeResource);

            if (!validationResult.IsValid)
            {
                return(BadRequest(validationResult.Errors)); // this needs refining, but for demo it is ok
            }
            var department = await departmentService.GetDepartmentById(saveEmployeeResource.DepartmentId);

            if (department == null)
            {
                return(NotFound("Department ID not found"));
            }

            var employeeToCreate = mapper.Map <SaveEmployeeResource, Employee>(saveEmployeeResource);

            var newEmployee = await employeeService.CreateEmployee(employeeToCreate);

            var employee = await employeeService.GetEmployeeById(newEmployee.Id);

            var employeeResource = mapper.Map <Employee, EmployeeResource>(employee);

            return(Ok(employeeResource));
        }
        public async Task <ActionResult <EmployeeResource> > UpdateEmployee(int id, [FromBody] SaveEmployeeResource saveEmployeeResource)
        {
            var validator        = new SaveEmployeeResourceValidator();
            var validationResult = await validator.ValidateAsync(saveEmployeeResource);

            var requestIsInvalid = id == 0 || !validationResult.IsValid;

            if (requestIsInvalid)
            {
                return(BadRequest(validationResult.Errors)); // this needs refining, but for demo it is ok
            }
            var employeeToBeUpdated = await employeeService.GetEmployeeById(id);

            if (employeeToBeUpdated == null)
            {
                return(NotFound());
            }

            var employee = mapper.Map <SaveEmployeeResource, Employee>(saveEmployeeResource);

            await employeeService.UpdateEmployee(employeeToBeUpdated, employee);

            var updatedEmployee = await employeeService.GetEmployeeById(id);

            var updatedEmployeeResource = mapper.Map <Employee, EmployeeResource>(updatedEmployee);

            return(Ok(updatedEmployeeResource));
        }
        public async Task <IActionResult> Update(int id, [FromBody] SaveEmployeeResource employeeResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var employee = await employeeRepository.GetOne(id);

            if (employee == null)
            {
                return(NotFound());
            }

            employee = mapper.Map(employeeResource, employee);

            employeeRepository.Update(employee);

            if (await unitOfWork.CompleteAsync() == false)
            {
                throw new Exception(message: $"Updating employee {id} failed on save");
            }

            employee = await employeeRepository.GetOne(employee.Id);

            var result = mapper.Map <Employee, ViewEmployeeResource>(employee);

            return(Ok(result));
        }
Beispiel #4
0
        public async Task <IActionResult> UpdateEmployee(int id, [FromBody] SaveEmployeeResource employeeResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var employee = await repository.GetEmployee(id);

            if (employee == null)
            {
                return(NotFound());
            }

            mapper.Map <SaveEmployeeResource, Employee>(employeeResource, employee);
            employee.LastUpdate = DateTime.Now;

            await unitOfWork.CompleteAsync();

            employee = await repository.GetEmployee(employee.Id);

            var result = mapper.Map <Employee, EmployeeResource>(employee);

            return(Ok(result));
        }
        public async Task <IActionResult> AddEmployee([FromBody] SaveEmployeeResource EmployeeResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var EmployeeToCreate = _mapper.Map <SaveEmployeeResource, Employee>(EmployeeResource);

            _repo.CreateEmployee(EmployeeToCreate);
            await _unitofwork.CompleteAsync();

            return(StatusCode(201));
        }
Beispiel #6
0
        public async Task <IActionResult> PutAsync(int id, [FromBody] SaveEmployeeResource resource)
        {
            var employee = _mapper.Map <SaveEmployeeResource, Employee>(resource);
            var result   = await _employeeService.UpdateAsync(id, employee);

            if (!result.Success)
            {
                return(BadRequest(new ErrorResource(result.Message)));
            }

            var employeeResource = _mapper.Map <Employee, EmployeeResource>(result.Resource);

            return(Ok(employeeResource));
        }
        public async Task <IActionResult> UpdateEmployee(int id, [FromBody] SaveEmployeeResource EmployeeResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Employee employee = await _repo.Get(id);

            if (employee == null)
            {
                return(NotFound());
            }
            _mapper.Map <SaveEmployeeResource, Employee>(EmployeeResource, employee);
            await _unitofwork.CompleteAsync();

            return(StatusCode(202));
        }
Beispiel #8
0
        public async Task <IActionResult> PostAsync([FromBody] SaveEmployeeResource resource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorMessages()));
            }
            var employee = _mapper.Map <SaveEmployeeResource, Employee>(resource);
            var result   = await _employeeService.SaveAsync(employee);

            if (!result.Success)
            {
                return(BadRequest(result.Message));
            }

            var employeeResource = _mapper.Map <Employee, EmployeeResource>(result.Employee);

            return(Ok(employeeResource));
        }
        public async Task <IActionResult> Create([FromBody] SaveEmployeeResource employeeResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var employee = mapper.Map <SaveEmployeeResource, Employee>(employeeResource);

            employeeRepository.Add(employee);
            if (await unitOfWork.CompleteAsync() == false)
            {
                throw new Exception(message: $"Create new employee fail on save");
            }

            employee = await employeeRepository.GetOne(employee.Id);

            var result = mapper.Map <Employee, ViewEmployeeResource>(employee);

            return(Ok(result));
        }