public virtual async Task <GetResourceUserExtraPropertiesOutput> GetExtraPropertiesAsync(
            GetResourceUserExtraPropertiesInput input)
        {
            await CheckGetExtraPropertiesPolicyAsync(input);

            var userId = input.UserId ?? CurrentUser.GetId();

            var resourceUser = await _repository.GetAsync(x => x.ResourceId == input.ResourceId && x.UserId == userId);

            var result = new GetResourceUserExtraPropertiesOutput();

            resourceUser.MapExtraPropertiesTo(result, MappingPropertyDefinitionChecks.None);

            return(result);
        }