Example #1
0
        // Put: api/Messages
        public void Put([FromBody] MessageStateModification messageState)
        {
            var message = ChatServerContext.Messages.FirstOrDefault(m => m.MessageGuid == messageState.MessageGuid);

            if (message != null)
            {
                message.State = messageState.MessageState;
                hubContext.Clients.Client(message.From.ConnectionGuid).ReceiveMessageStateModification(messageState);
            }

            ChatServerContext.SaveChanges();
        }
        // POST: api/Register
        public User Post([FromBody] string userName)
        {
            User output = new User
            {
                Nickname = userName,
                UserGuid = Guid.NewGuid().ToString()
            };

            ChatServerContext.Users.Add(output);
            ChatServerContext.SaveChanges();

            return(output);
        }
        // POST: api/Login
        public void Post([FromBody] User user)
        {
            var searchUser = ChatServerContext.GetUser(user.UserGuid);

            if (searchUser == null)
            {
                ChatServerContext.Users.Add(user);
                ChatServerContext.SaveChanges();
            }

            IHubContext hubContext = GlobalHost.ConnectionManager.GetHubContext <ChatHub>();

            hubContext.Clients.Client(user.ConnectionGuid).Hello();
        }
Example #4
0
        public override Task OnConnected()
        {
            var connectionGuid = Context.ConnectionId;
            var userGuid       = Context.Headers.Get(Constants.UserGuid);

            var searchUser = ChatServerContext.GetUser(userGuid);

            if (searchUser != null)
            {
                searchUser.ConnectionGuid = connectionGuid;
                ChatServerContext.SaveChanges();
            }

            return(base.OnConnected());
        }
Example #5
0
        // POST: api/Messages
        public void Post([FromBody] Message message)
        {
            DataContext.Instance.Context.Messages.Add(message);

            ChatServerContext.Messages.Add(message);
            ChatServerContext.SaveChanges();

            var messageState = new MessageStateModification {
                MessageGuid = message.MessageGuid, MessageState = MessageState.OnServer
            };

            hubContext.Clients.Client(message.From.ConnectionGuid).ReceiveMessageStateModification(messageState);

            var conGuid = ChatServerContext.Users.FirstOrDefault(u => u.UserGuid == message.ToGuid)?.ConnectionGuid;

            if (conGuid != null)
            {
                hubContext.Clients.Client(conGuid).ReceivePrivateMessage(message);
            }
        }