public async Task <ActionResult <TrainerCardUpdateDTO> > UpdateTrainerCard([FromBody] TrainerCardUpdateDTO card, [FromQuery] bool isDeactivating = false) { try { var returnedCard = await _cardService.UpdateTrainerCard(card, isDeactivating); return(Ok(returnedCard)); } catch (ArgumentNullException exception) { return(NotFound(exception.Message)); } catch (Exception exception) { return(BadRequest(exception.Message)); } }
public async Task <TrainerCardUpdateDTO> UpdateTrainerCard(TrainerCardUpdateDTO card, bool isDeactivating) { var mappedCard = _mapper.Map <TrainerCard>(card); if (!isDeactivating) { if (!card.UnlimitedValidityPeriod) { mappedCard.ExpirationDate = mappedCard.PurchaseDate.AddDays(card.ValidityPeriod); } } else { mappedCard.ExpirationDate = DateTime.Now; } var returnedCard = await _cardRepository.UpdateTrainerCard(mappedCard); return(_mapper.Map <TrainerCardUpdateDTO>(returnedCard)); }