コード例 #1
0
        public async Task <ActionResult <TrainerCardCreateDTO> > CreateTrainerCard([FromBody] TrainerCardCreateDTO card)
        {
            try
            {
                var returnedCard = await _cardService.CreateTrainerCard(card);

                return(Ok(returnedCard));
            }
            catch (Exception exception)
            {
                return(BadRequest(exception.Message));
            }
        }
コード例 #2
0
        public async Task <TrainerCardCreateDTO> CreateTrainerCard(TrainerCardCreateDTO card)
        {
            var mappedCard = _mapper.Map <TrainerCard>(card);
            var days       = !card.UnlimitedValidityPeriod ? card.ValidityPeriod : 0;

            mappedCard.PurchaseDate = DateTime.Now;
            if (!card.UnlimitedValidityPeriod)
            {
                mappedCard.ExpirationDate = DateTime.Now.AddDays(days);
            }
            var returnedCard = await _cardRepository.CreateTrainerCard(mappedCard);

            var user = await _userRepository.GetUser(card.UserId);

            if (!card.UnlimitedValidityPeriod)
            {
                var expDate  = (DateTime)mappedCard.ExpirationDate;
                var sendDate = expDate.AddDays(-3);
                BackgroundJob.Schedule(() => SendNotificationCardAlmostExpired(user.Email, mappedCard.TrainerName, user.FirstName, user.Notification.CardAlmostExpired), sendDate);
                BackgroundJob.Schedule(() => SendNotificationCardExpired(user.Email, mappedCard.TrainerName, user.FirstName, user.Notification.CardExpired), expDate);
            }

            return(_mapper.Map <TrainerCardCreateDTO>(returnedCard));
        }