public async Task <ActionResult <ParticipantsDTO> > AddParticipant(int EventId, int UserId, ParticipantsDTO participantsDto) { try { var participant = _mapper.Map <Participants>(participantsDto); participant.EventId = EventId; participant.UserId = UserId; _participantsRepository.CreateParticipants(participant); var eventTemp = await _eventRepository.GetEventByIdAsync(EventId); var mappedEvent = _mapper.Map <EventFullDTO>(eventTemp); string eventTitle = mappedEvent.EventName; var hostUser = await _userRepository.GetUserByIdAsync(eventTemp.UserId); var mappedHost = _mapper.Map <UserFullDTO>(hostUser); string hostName = mappedHost.Name; string hostEmail = mappedHost.Email; var participantUser = await _userRepository.GetUserByIdAsync(UserId); var mappedParticipant = _mapper.Map <UserFullDTO>(participantUser); string participantsName = mappedParticipant.Name; MailModel mailModel = new MailModel(); mailModel.From = "*****@*****.**"; mailModel.To = participantUser.Email; mailModel.Subject = "You have joined the event " + eventTitle; mailModel.Body = "Hi " + participantsName + "\n ! You have joined the event hosted by \n " + hostName + ". Here is the " + hostName + "'s contact email address: " + hostEmail + " We hope you will have fun. Thanks for using our app!"; _emailService.SendEmail(mailModel); if (await _participantsRepository.SaveChangeAsync()) { return(Ok()); } } catch (Exception) { return(this.StatusCode(StatusCodes.Status500InternalServerError, "Database Failure")); } return(BadRequest()); }