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)); }
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)); }
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)); }
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)); }