public async Task <ProjectUserMessage> Handle(AddUserProjectCommand request, CancellationToken cancellationToken) { var userDomain = _UserRepository.GetById(request.UserId).Result.ToDomain <User>(_Mapper); var projectDomain = _ProjectRepository.GetById(request.ProjectId).Result.ToDomain <Project>(_Mapper); projectDomain.Validate(); //projectDomain.AddUser(userDomain); #region Persistence await _ProjectRepository.AddUser(projectDomain.ToModel <Command.UserProject>(_Mapper)); await _UnitOfWork.Commit(); #endregion #region Bus var addUserProjectMessage = new Message(); addUserProjectMessage.MessageType = "UpdateUserProject"; var response = new ProjectUserMessage { Project = projectDomain.ToQueryModel <Query.Project>(_Mapper), User = userDomain.ToQueryModel <UserQuery.User>(_Mapper) }; addUserProjectMessage.SetData(response); await _SendEndpointProvider.Send(addUserProjectMessage, cancellationToken); #endregion return(response); }