Пример #1
0
        public async Task <Guid> Handle(AddSubscriptionCommand request, CancellationToken cancellationToken)
        {
            var validator        = new AddSubscriptionCommandValidator();
            var validationResult = await validator.ValidateAsync(request);

            if (validationResult.Errors.Count > 0)
            {
                throw new Exceptions.ValidationException(validationResult);
            }

            var subscription = SubscriptionMapper.Map(request);

            var customer = await _customerRepository.GetByIdAsync(request.CustomerId);

            var subscriptionChecker = new SubscriptionChecker();
            var isEligible          = subscriptionChecker.CheckEligibility(customer);

            if (!isEligible)
            {
                throw new NotEligibleException(request.CustomerId);
            }

            await _subscriptionRepository.AddAsync(subscription);

            return(subscription.Id);
        }
Пример #2
0
        static void Main(string[] args)
        {
            SubscriptionChecker subscriptionChecker = new SubscriptionChecker();

            Console.ReadKey();
        }