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)); } }
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)); }