public ProfileSearchQuery(
            ICategoryQuery query,
            IProfileStore profileStore,
            ICategoryLinkStore linkStore,
            IProfileCache profileCache,
            ICategoryCache cache)
        {
            Ensure.Any.IsNotNull(profileStore, nameof(profileStore));
            Ensure.Any.IsNotNull(linkStore, nameof(linkStore));
            Ensure.Any.IsNotNull(cache, nameof(cache));
            Ensure.Any.IsNotNull(query, nameof(query));
            Ensure.Any.IsNotNull(profileCache, nameof(profileCache));

            _profileStore = profileStore;
            _linkStore    = linkStore;
            _cache        = cache;
            _query        = query;
            _profileCache = profileCache;
        }
        public ProfileChangeProcessor(
            IProfileStore profileStore,
            ICategoryStore categoryStore,
            ICategoryLinkStore linkStore,
            IEventTrigger eventTrigger,
            IProfileCache profileCache,
            ICategoryCache cache)
        {
            Ensure.Any.IsNotNull(profileStore, nameof(profileStore));
            Ensure.Any.IsNotNull(categoryStore, nameof(categoryStore));
            Ensure.Any.IsNotNull(linkStore, nameof(linkStore));
            Ensure.Any.IsNotNull(profileCache, nameof(profileCache));
            Ensure.Any.IsNotNull(cache, nameof(cache));
            Ensure.Any.IsNotNull(eventTrigger, nameof(eventTrigger));

            _profileStore  = profileStore;
            _categoryStore = categoryStore;
            _linkStore     = linkStore;
            _eventTrigger  = eventTrigger;
            _profileCache  = profileCache;
            _cache         = cache;
        }