public async Task <GetEventModel> AddParticipant(EventParticipantModel eventParticipantModel, Guid personUid) { var entity = await CreateParticipantEntity(eventParticipantModel); await _eventRepository.AddParticipant(entity); var person = await _personRepository.GetPerson(eventParticipantModel.PersonUid); var eventEntity = await _eventRepository.GetPureEvent(eventParticipantModel.EventUid); if (!string.IsNullOrEmpty(person.Token) && eventParticipantModel.PersonUid != personUid) { await _pushNotificationService.SendPushNotification(person.Token, MessageTitles.AddParticipantNotificationMessage, new Dictionary <FirebaseNotificationKeys, string> { [FirebaseNotificationKeys.Url] = string.Format(FirebaseNotificationTemplates.EventUrlTemplate, eventEntity.EventUid) }, "Lume", eventEntity.Name); } if (eventEntity.Administrator != null && eventEntity.Administrator.Token != null && eventEntity.Administrator.PersonUid != personUid) { if (eventParticipantModel.ParticipantStatus == ParticipantStatus.WaitingForApproveFromEvent) { await _pushNotificationService.SendPushNotification(eventEntity.Administrator.Token, MessageTitles.ParticipantWaitingForApproval, new Dictionary <FirebaseNotificationKeys, string> { [FirebaseNotificationKeys.Url] = string.Format(FirebaseNotificationTemplates.EventUrlTemplate, eventEntity.EventUid) }, "Lume", eventEntity.Name); } else if (eventParticipantModel.ParticipantStatus == ParticipantStatus.Active) { await _pushNotificationService.SendPushNotification(eventEntity.Administrator.Token, MessageTitles.ParticipantJoinedTheEvent, new Dictionary <FirebaseNotificationKeys, string> { [FirebaseNotificationKeys.Url] = string.Format(FirebaseNotificationTemplates.EventUrlTemplate, eventEntity.EventUid) }, "Lume", eventEntity.Name); } } return(await GetEvent(eventParticipantModel.EventUid)); }