public void save(DesignationDto Designation_dto) { try { using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required)) { var DesignationWithSamePosition = _DesignationRepository.getByPosition(Designation_dto.position); if (DesignationWithSamePosition != null) { throw new ItemUsedException("This position is already used."); } Designation Designation = new Designation(); var designation_position = _DesignationRepository.getAll(); _DesignationMaker.copy(ref Designation, Designation_dto); _DesignationRepository.insert(Designation); tx.Complete(); } } catch (Exception) { throw; } }