public void CallBackChatAdded(ChatDTO chat) { App.Current.Dispatcher.BeginInvoke((Action) delegate() { Thread.Sleep(20); UserChats.Add(InitializeChat(chat)); }); }
public void PopulateUserChats(List <Chat> chats) { foreach (Chat chat in chats) { lock (UserChatsLock) { UserChats.Add(chat); } } }
public void AddMessage(Message message, string receiverUsername) { string senderUsername = message.SenderUsername; bool found = false; foreach (Chat chat in UserChats) { if (ValidChat(chat, senderUsername, receiverUsername)) { chat.Messages.Add(message); found = true; } } if (!found) { Chat newChat = new Chat(receiverUsername, senderUsername, new List <Message>()); newChat.Messages.Add(message); lock (UserChatsLock) { UserChats.Add(newChat); } } if (_SelectedChat != null) { if (_SelectedChat.RecipientUsername == receiverUsername || CUsername == receiverUsername) { Application.Current.Dispatcher.Invoke(delegate { ChatMessages.Add(senderUsername + ": " + message.Content); }); OnPropertyChanged("SelectedChat"); } } }
protected override async Task OnInitializedAsync() { var claimsPrincipal = await AuthenticationStateProvider.GetAuthenticationStateAsync(); var user = await UserManager.GetUserAsync(claimsPrincipal.User); if (user is null) { var userName = UserManager.GetUserName(claimsPrincipal.User); if (userName is null) { return; } user = await UserManager.Users.FirstOrDefaultAsync(x => x.UserName == userName); } _currentChatUser = DbContext.ChatUsers.Include(x => x.UserNameColor).FirstOrDefault(x => x.AppUser == user); //.Include(x => x.AppUser) //.Include(x => x.UserNameColor) //.FirstOrDefaultAsync(x => x.AppUser == user); // todo: rewrite query var query = DbContext.ChatRooms .Include(x => x.ChatMessages) .Include(x => x.ChatUsers).ThenInclude(x => x.UserNameColor) .Include(x => x.ChatUsers).ThenInclude(x => x.AppUser); foreach (var chatRoom in query) { if (chatRoom.ChatUsers.Contains(_currentChatUser)) { UserChats.Add(chatRoom); } } await base.OnInitializedAsync(); }
public ApplicationContext() { Database.EnsureDeleted(); Database.EnsureCreated(); UserData user = new UserData(); user.Login = "******"; user.Password = "******"; Users.Add(user); UserData user1 = new UserData(); user1.Login = "******"; user1.Password = "******"; Users.Add(user1); UserData user2 = new UserData(); user2.Login = "******"; user2.Password = "******"; Users.Add(user2); SaveChanges(); Token token = new Token(); token.UserId = user.Id; token.TokenId = "dferw"; Tokens.Add(token); Token token1 = new Token(); token1.UserId = user1.Id; token1.TokenId = "2w3e4r"; Tokens.Add(token1); Token token2 = new Token(); token2.UserId = user2.Id; token2.TokenId = "98765"; Tokens.Add(token2); SaveChanges(); Chat chat = new Chat(); chat.Name = "Geography"; chat.UserId = user.Id; Chats.Add(chat); SaveChanges(); UserChat userChat = new UserChat(); userChat.ChatId = chat.Id; userChat.UserId = user.Id; UserChats.Add(userChat); SaveChanges(); UserChat userChat1 = new UserChat(); userChat1.ChatId = chat.Id; userChat1.UserId = user1.Id; UserChats.Add(userChat1); SaveChanges(); UserChat userChat2 = new UserChat(); userChat2.ChatId = chat.Id; userChat2.UserId = user2.Id; UserChats.Add(userChat2); SaveChanges(); }