public async Task <Conversation> ExecuteAsync(IEnumerable <Guid> participantIds) { var currentUserId = _identityService.GetCurrentUserId(); if (participantIds?.Any() != true) { throw new ArgumentException("participantIds is null or empty"); } if (participantIds.Count() > 4) { throw new ArgumentException("Conversation cannot have more than 4 participants"); } if (participantIds.FirstOrDefault(participantId => participantId.Equals(currentUserId)) != default) { throw new ArgumentException("User cannot add itself to conversation"); } var result = await _useCase.ExecuteAsync(participantIds); //;... return(result); }
public async Task <IActionResult> CreateByUser( [FromBody] CreateConversationRequest request, [FromServices] ICreateConversationUseCase useCase) { var result = await useCase.ExecuteAsync(request.Participants); if (result == null) { return(BadRequest()); } return(Ok(new ConversationViewModel(result))); }