public async Task <Department> UpdateDepartmentAsync(string code, DepertmentUpdateRequest aDepartment) { var department = await _unitOfWork.DepartmentRepository.GetAAsynce(x => x.Code == code); if (department == null) { throw new MyAppException("department not found"); } if (!string.IsNullOrWhiteSpace(aDepartment.Code)) { var isCodeExistsAnotherDepartment = await _unitOfWork.DepartmentRepository.GetAAsynce(x => x.Code == aDepartment.Code && x.DepartmentId != department.DepartmentId); if (isCodeExistsAnotherDepartment == null) { department.Code = aDepartment.Code; } else { throw new MyAppException("code already exists different department"); } } if (!string.IsNullOrWhiteSpace(aDepartment.Name)) { var isCodeExistsAnotherDepartment = await _unitOfWork.DepartmentRepository.GetAAsynce(x => x.Name == aDepartment.Name && x.DepartmentId != department.DepartmentId); if (isCodeExistsAnotherDepartment == null) { department.Name = aDepartment.Name; } else { throw new MyAppException("name already exists different department"); } } _unitOfWork.DepartmentRepository.UpdateAsyc(department); if (await _unitOfWork.ApplicationSaveChangesAsync()) { return(department); } throw new MyAppException("something went wrong"); }
public async Task <ActionResult> Update(string code, DepertmentUpdateRequest aDepartment) { return(Ok(await _departmentService.UpdateDepartmentAsync(code, aDepartment))); }