public async Task <IReadOnlyList <UserDepartmentDto> > GetCachedUserDepartmentDtos(bool clearCache = false)
        {
            if (_allUserDepartmentDtos == null || clearCache)
            {
                using (_dbContextScopeFactory.CreateReadOnly())
                {
                    var allUserDeptModels = await _userDepartmentRepository.GetAllUserDepartments();

                    var allItem     = _mapper.Map <List <UserDepartmentDto> >(allUserDeptModels);
                    var allJobTitle = await _userJobTitleRepository.GetListUserJobTitle();

                    var allUserDtos = _userServices.GetUsers();
                    var allDeptDtos = await _departmentServices.GetDepartmentsAsync();

                    ConvertToUserDepartmentDto(allItem, allJobTitle, allUserDtos, allDeptDtos);
                    _allUserDepartmentDtos = allItem;
                }
            }
            return(_allUserDepartmentDtos);
        }