public async Task <ActionResult <ClubCardCreateDTO> > CreateClubCard([FromBody] ClubCardCreateDTO card) { try { var returnedCard = await _cardService.CreateClubCard(card); return(Ok(returnedCard)); } catch (Exception exception) { return(BadRequest(exception.Message)); } }
public async Task <ClubCardCreateDTO> CreateClubCard(ClubCardCreateDTO card) { var mappedCard = _mapper.Map <ClubCard>(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.CreateClubCard(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.ClubName, user.FirstName, user.Notification.CardAlmostExpired), sendDate); BackgroundJob.Schedule(() => SendNotificationCardExpired(user.Email, mappedCard.ClubName, user.FirstName, user.Notification.CardExpired), expDate); } return(_mapper.Map <ClubCardCreateDTO>(returnedCard)); }