// 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(); }
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()); }
// 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); } }