Exemple #1
0
        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));
        }