Example #1
0
        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)));
 }