Пример #1
0
        public async Task <IActionResult> ActivateBonusAsync(ActivateBonusDto activateBonusDto)
        {
            var validationResult = new ActivateBonusDtoValidator().Validate(activateBonusDto);

            if (!validationResult.IsValid)
            {
                return(UnprocessableEntity(new ExceptionMessage(validationResult.Errors.Select(x => x.ErrorMessage))));
            }

            var userId = Guid.Parse(User.Identity.Name);
            var canBeProcessedResult = await _servicesService.BonusCanBeActivatedAsync(userId, activateBonusDto);

            if (!canBeProcessedResult.CanBeProcessed)
            {
                return(StatusCode(canBeProcessedResult.StatusCode, new ExceptionMessage(canBeProcessedResult.RejectionReason)));
            }

            await _servicesService.ActivateBonusAsync(userId, activateBonusDto);

            return(NoContent());
        }