コード例 #1
0
        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);
        }
コード例 #2
0
        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)));
        }