コード例 #1
0
        public virtual async Task ConsumeAsync(ConsumeGiftCardDto input)
        {
            var giftCard = await _giftCardManager.GetUsableAsync(input.Code, input.Password);

            var template = await _giftCardTemplateRepository.GetAsync(giftCard.GiftCardTemplateId);

            if (CurrentTenant.Id.HasValue && !template.TenantAllowed)
            {
                throw new GiftCardTemplateTenantNotAllowedException(template.Id);
            }

            if (!template.AnonymousConsumptionAllowed)
            {
                await AuthorizationService.CheckAsync(GiftCardManagementPermissions.GiftCards.Consume);
            }

            await _giftCardManager.ConsumeAsync(giftCard, CurrentUser.Id, input.ExtraProperties);
        }