private static bool OnAggregateServiceDependencyResolver(IUnityContainer container, Type type, string targetNamedMapping, ParameterInfo constructorParameter, out object resolvedParameter)
        {
            resolvedParameter = null;

            if (constructorParameter.ParameterType.IsAggregateService())
            {
                if (!constructorParameter.ParameterType.GetTypeInfo().IsInterface)
                {
                    throw new InvalidOperationException("Aggregate service can't be injected dependency as concrete type. Dependant consumer type: " + type + ". Dependency type:" + constructorParameter.ParameterType);
                }

                // Резолв aggregate service-а, который является зависимостью другого aggregate service-а
                if (type.IsAggregateService())
                {
                    resolvedParameter = new ResolvedParameter(constructorParameter.ParameterType, Mapping.ConstructorInjectionNestedAggregateServicesScope);
                    return true;
                }

                // constructorParameter - это аргегирующий репозиторий,
                // Тип для которго настраиваются зависимости, использует упрощенную работу с aggregates layer (через constructor injection и без явного использования UoW),
                // и упростить её нужно здесь и сейчас
                resolvedParameter = new ResolvedParameter(constructorParameter.ParameterType, Mapping.ConstructorInjectionAggregateServicesScope);
                return true;
            }

            return false;
        }
        private static bool OnAggregateReadModelDependencyResolver(IUnityContainer container, Type type, string targetNamedMapping, ParameterInfo constructorParameter, out object resolvedParameter)
        {
            resolvedParameter = null;

            if (constructorParameter.ParameterType.IsAggregateReadModel())
            {
                if (!constructorParameter.ParameterType.GetTypeInfo().IsInterface)
                {
                    throw new InvalidOperationException("Aggregate read model can't be injected dependency as concrete type. Dependant consumer type: " + type + ". Dependency type:" + constructorParameter.ParameterType);
                }

                // constructorParameter - это read model
                // Тип для которго настраиваются зависимости, использует упрощенную работу с aggregates layer (через constructor injection и без явного использования UoW),
                // и упростить её нужно здесь и сейчас
                resolvedParameter = new ResolvedParameter(constructorParameter.ParameterType, Mapping.ConstructorInjectionReadModelsScope);
                return true;
            }

            return false;
        }
        private static bool OperationServicesDependencyResolver(IUnityContainer container, Type type, string targetNamedMapping, ParameterInfo constructorParameter, out object resolvedParameter)
        {
            resolvedParameter = null;

            if (typeof(IOperationService).IsAssignableFrom(constructorParameter.ParameterType))
            {
                resolvedParameter = new ResolvedParameter(constructorParameter.ParameterType);
                return true;
            }

            return false;
        }