public ProfilePatternReProfilingConfigurationValidator(IReProfilingStrategyLocator reProfilingStrategyLocator)
        {
            RuleFor(_ => _.ReProfilingConfiguration)
            .Custom((pattern,
                     context) =>
            {
                if (!pattern.ReProfilingEnabled)
                {
                    return;
                }

                if (!reProfilingStrategyLocator.HasStrategy(pattern.DecreasedAmountStrategyKey))
                {
                    context.AddFailure("ReProfilingConfiguration.DecreasedAmountStrategyKey", "No matching strategy exists");
                }

                if (!reProfilingStrategyLocator.HasStrategy(pattern.IncreasedAmountStrategyKey))
                {
                    context.AddFailure("ReProfilingConfiguration.IncreasedAmountStrategyKey", "No matching strategy exists");
                }

                if (!reProfilingStrategyLocator.HasStrategy(pattern.SameAmountStrategyKey))
                {
                    context.AddFailure("ReProfilingConfiguration.SameAmountStrategyKey", "No matching strategy exists");
                }
            });
        }
        public ReProfilingService(
            IProfilePatternService profilePatternService,
            IReProfilingStrategyLocator reProfilingStrategyLocator,
            ICalculateProfileService calculateProfileService)
        {
            Guard.ArgumentNotNull(profilePatternService, nameof(profilePatternService));
            Guard.ArgumentNotNull(reProfilingStrategyLocator, nameof(reProfilingStrategyLocator));
            Guard.ArgumentNotNull(calculateProfileService, nameof(calculateProfileService));

            _profilePatternService      = profilePatternService;
            _reProfilingStrategyLocator = reProfilingStrategyLocator;
            _calculateProfileService    = calculateProfileService;
        }
コード例 #3
0
        public ReProfilingStrategyListService(IReProfilingStrategyLocator reProfilingStrategyLocator)
        {
            Guard.ArgumentNotNull(reProfilingStrategyLocator, nameof(reProfilingStrategyLocator));

            _reProfilingStrategyLocator = reProfilingStrategyLocator;
        }