public void Subscribe(int conversationId, long userId) { Groups.Add(Context.ConnectionId, conversationId.ToString()); var conversationTask = _conversationBoundedContext.GetById(conversationId); conversationTask.ContinueWith(d => { var joinUserTask = _conversationBoundedContext.JoinUserToConversation(d.Result, userId, Context.ConnectionId); joinUserTask.ContinueWith(jut => { if (jut.Result != null) { var userTask = _userSummaryRepository.GetById(userId); userTask.ContinueWith(u => { Clients.Group(conversationId.ToString()).userJoined(u.Result); }); } }); }); }
// GET: /api/conversations/1 public async Task <IHttpActionResult> Get(int id) { if (User == null || User.Identity == null || !User.Identity.IsAuthenticated) { return(Unauthorized()); } var conversation = await _conversationBoundedContext.GetById(id); if (conversation == null) { return(NotFound()); } return(Ok(conversation)); }