public async Task <IActionResult> UpdateEmployee(int id, EmployeeForDetailDto employeeForDetailDto)
        {
            if (employeeForDetailDto == null)
            {
                return(BadRequest(new ErrorModel(1, 400, "Empty Body")));
            }

            var employeeFromRepository = await _repository.GetEmployee(id);

            if (employeeFromRepository == null)
            {
                return(BadRequest(new ErrorModel(2, 400, "employee not available")));
            }

            employeeFromRepository.Name = employeeForDetailDto.Name;

            employeeFromRepository.ContactNumber = employeeForDetailDto.ContactNumber;
            employeeFromRepository.NIC           = employeeForDetailDto.NIC;
            employeeFromRepository.Address       = employeeForDetailDto.Address;
            employeeFromRepository.Type          = employeeForDetailDto.Type;
            employeeFromRepository.Salary        = employeeForDetailDto.Salary;
            employeeFromRepository.Role          = employeeForDetailDto.Role;

            if (await _repository.SaveAll())
            {
                return(NoContent());
            }
            throw new System.Exception($"Updating employee {id} failed on save");
        }
        public async Task <IActionResult> CreateEmployee(EmployeeForDetailDto employeeForDetailDto)
        {
            if (employeeForDetailDto == null)
            {
                return(BadRequest(new ErrorModel(1, 400, "Empty Body")));
            }

            var EmployeeToCreate = _mapper.Map <Employee>(employeeForDetailDto);

            await _repository.CreateEmployee(EmployeeToCreate);

            if (await _repository.SaveAll())
            {
                var employeeToReturn = _mapper.Map <EmployeeForDetailDto>(EmployeeToCreate);
                return(CreatedAtRoute(nameof(GetEmployee), new { EmployeeToCreate.Id }, employeeToReturn));
            }

            return(BadRequest("Could not create Employee"));
        }