public void RequestNewChat(string auctionId, string participant, Message message) { CurrentChat = new Chat(auctionId, participant); CurrentChat.Message = message; Chats.Add(CurrentChat); OnChatCreated(EventArgs.Empty); }
public SettingsViewModel(ISettingsDataService dataService, IGeneralDataService generalDataService) { settingsDataService = dataService; CurrentTheme = Ubiquitous.Default.Config.AppConfig.ThemeName; settingsDataService.GetChatSettings((list) => { foreach (ChatConfig chatConfig in list) { Chats.Add(new SettingsChatItemViewModel(chatConfig)); } }); var serviceList = generalDataService.Services.Select(service => new SettingsSectionViewModel(service)); foreach (var service in serviceList) { ServiceItemViewModels.Add(service); } AppConfig = Ubiquitous.Default.Config.AppConfig; ThemeList = new ObservableCollection <ThemeDescription>(Theme.ThemesList); var currentTheme = ThemeList.FirstOrDefault(theme => theme.Title.Equals(Theme.CurrentTheme)); if (currentTheme != null) { currentTheme.IsCurrent = true; } }
private void OnTelegramServiceNewMessage(object sender, EventArgs.NewMessageEventArgs e) { _dispatcherService.InvokeIfRequired(async() => { try { var chat = Chats.FirstOrDefault(x => x.Chat.Id == e.Message.Chat.Id); bool newChat = chat == null; if (newChat) { chat = ChatViewModel.Create(e.Message.Chat); Chats.Add(chat); } chat.AddMessage(e.Message); Chats.MoveItemToTop(chat); if (newChat) { await chat.LoadImageAsync(); } } catch (Exception ex) { ProcessException(ex); } }); }
private async void SendMessage() { if (string.IsNullOrEmpty(Message) || string.IsNullOrWhiteSpace(Message)) { Message = null; return; } var chat = new Chat() { Sender = Settings.UsernameSettings, //SenderEmail = Settings.EmailSettings, SenderId = Settings.KeySettings, SenderAvatar = Settings.AvatarSettings, Message = Message.Trim(), Receiver = Username, ReceiverId = Id, //ReceiverEmail = Email, ReceiverAvatar = Avatar, Time = DateTime.Now }; Message = null; Chats.Add(chat); var send = await remoteService.SendMessage(chat); }
private void Transport_PhotoMessageReceived(object sender, EventArgs <BotPhotoMessage> e) { Core.Log.LibVerbose("Photo Message received..."); var message = e.Item1; #region Get Chat if (Chats.TryGet(message.Chat.Id, out var storedChat)) { message.Chat.State = storedChat.State; } else { Chats.Add(message.Chat); } #endregion #region Get User if (!Users.Contains(message.User.Id)) { Users.Add(message.User); } #endregion OnPhotoMessageReceived?.Invoke(this, e); }
public Chat CreateChat(string auctionId, string participant, IMessageListener messageListener) { CurrentChat = new Chat(auctionId, participant); CurrentChat.AddIMessageListener(messageListener); Chats.Add(CurrentChat); OnChatCreated(EventArgs.Empty); return(CurrentChat); }
public Chat GetChat(long peerId) { if (!Chats.ContainsKey(peerId)) { Chats.Add(peerId, new Chat(this, peerId)); } return(Chats[peerId]); }
private void LoadChats() { foreach (Chat chat in MessageManager.Instance.chats) { chat.Init(); Chats.Add(chat); } }
private async void Transport_TextMessageReceived(object sender, EventArgs <BotTextMessage> e) { try { if (e?.Item1?.Text?.IsNullOrEmpty() != false) { return; } Core.Log.LibVerbose("Message received, looking for command..."); _counterMessagesReceived.Increment(); var message = e.Item1; var sCommands = Commands.Where((cmd, sMessage) => cmd.Condition(sMessage.Text), message).ToArray(); if (sCommands.Any()) { #region Get Chat if (Chats.TryGet(message.Chat.Id, out var storedChat)) { storedChat.ChatType = message.Chat.ChatType; storedChat.Name = message.Chat.Name; // message.Chat.State = storedChat.State; } else { Chats.Add(message.Chat); } #endregion #region Get User if (!Users.Contains(message.User.Id)) { Users.Add(message.User); } #endregion foreach (var sCommand in sCommands) { Core.Log.LibVerbose("Executing command for: {0}", message.Text); var res = await sCommand.Handler(this, message).ConfigureAwait(false); Core.Log.LibVerbose("Command executed."); if (res) { break; } } } else { Core.Log.LibVerbose("Command not found for the message: {0}", message.Text); } } catch (Exception ex) { Core.Log.Write(ex); } }
private async Task InitAsync() { foreach (var chatInfo in _chatService.GetChatListe()) { Angebot angebot = await _angebotService.LoadAngebotAsync(chatInfo.AnbieterID + "/" + chatInfo.AngebotID, DateTime.MinValue); Chats.Add(new ChatViewModel(chatInfo, Factory.GetChatPollingService(), Factory.GetChatService(), Factory.GetLoginService(), Factory.GetChatBufferService(), Factory.GetProfilService(), angebot)); } }
private async void _chatController_NewChatOpened(ChatInfo newChat) { await ChatViewModel._coreDispatcher.RunAsync(CoreDispatcherPriority.Normal, async() => { Angebot angebot = await _angebotService.LoadAngebotAsync(newChat.AnbieterID + "/" + newChat.AngebotID, DateTime.MinValue); Chats.Add(new ChatViewModel(newChat, Factory.GetChatPollingService(), Factory.GetChatService(), Factory.GetLoginService(), Factory.GetChatBufferService(), Factory.GetProfilService(), angebot)); }); }
public Chat CreateChat(string auctionId, IMessageListener messageListener) { CurrentChat = new Chat(auctionId, XMPPConnection.UserName); if (messageListener != null) { CurrentChat.AddIMessageListener(messageListener); } Chats.Add(CurrentChat); OnChatCreated(EventArgs.Empty); return(CurrentChat); }
public void AddToChat(Chat chat) { if (chat == null) { throw new ArgumentNullException(); } if (chat.Users.Contains(this)) { throw new InvalidOperationException(); } Chats.Add(chat); chat.Users.Add(this); }
private async void RetrieveMessage() { var chats = await remoteService.RetrieveMessage(); Chats.Clear(); foreach (var item in chats) { if ((item.SenderId == Settings.KeySettings && item.ReceiverId == Id) || (item.SenderId == Id && item.ReceiverId == Settings.KeySettings)) { Chats.Add(item); } } }
public UserChat GetChat(long peerId = 0) { lock (_userLock) { var chat = Chats.FirstOrDefault(c => c.PeerId == (peerId == 0 ? (long)Id : peerId)); if (chat == null) { chat = new UserChat(peerId == 0 ? (long)Id : peerId); Chats.Add(chat); } return(chat); } }
/// <summary> /// Añade una conexión /// </summary> internal bool Add(JabberConnection connection, JabberContact contact) { bool added = false; // Añade el chat si no existía if (!Exists(connection, contact)) { // Añade el chat Chats.Add(GetKey(connection, contact)); // Indica que se ha añadido added = true; } // Devuelve el valor que indica si se ha añadido return(added); }
public void OnSelectedChat(Chat chat) { var _chat = Chats.FirstOrDefault((x) => x.Name == chat.Name); if (_chat == null) { chat.CountOfUnreadMessages = 0; Chats.Add(chat); SelectedChat = chat; } else { SelectedChat = _chat; } }
private Chat CreateChat(IEnumerable <ChatUserSetting> chatUserSettings, bool isGroup, long userJoinedAt, ChatGroupInfo?chatGroupInfo) { if (isGroup && !chatGroupInfo.HasValue) { throw new ArgumentNullException(nameof(chatGroupInfo)); } var time = DateTimeOffset.FromUnixTimeMilliseconds(userJoinedAt).DateTime; var chat = new Chat() { IsGroup = isGroup, CreatedAt = time }; Chats.Add(chat); Models.ChatSetting chatSetting = null; if (isGroup) { chatSetting = new Models.ChatSetting() { Chat = chat, Address = chatGroupInfo.Value.Address, Name = chatGroupInfo.Value.Name, Description = chatGroupInfo.Value.Description, PictureUrl = chatGroupInfo.Value.Image, PublicKey = chatGroupInfo.Value.PublicKey, PrivateKey = chatGroupInfo.Value.PrivateKey, IsPublic = chatGroupInfo.Value.IsPublic, CreatedAt = time, }; ChatSettings.Add(chatSetting); } foreach (var userSetting in chatUserSettings) { CreateChatUser(chat, userSetting, userJoinedAt); } chat.Setting = chatSetting; return(chat); }
/// <summary> /// Inizializza una chat, se non è già presente. /// </summary> /// <param name="InitUser">L'utente che cerca di aprire la chat.</param> /// <param name="ReceiveUser">L'utente "ricevente"</param> /// <returns>Nel primo caso restituisce la nuova chat, nel secondo quella corretta.</returns> public IMMessagesContainerDTO StarChat(IMUserDTO InitUser, IMUserDTO ReceiveUser) { IMMessagesContainerDTO TempChat = (from ct in Chats where ((ct.UserA.Id == InitUser.Id) && (ct.UserB.Id == ReceiveUser.Id) || (ct.UserA.Id == ReceiveUser.Id) && (ct.UserB.Id == InitUser.Id)) select ct).FirstOrDefault(); if (TempChat != null) { //Restituisco la chat corretta return(TempChat); } else { //Creo la nuova chat TempChat = new Domain.IMMessagesContainerDTO(); TempChat.Id = Guid.NewGuid(); TempChat.UserA = InitUser; TempChat.UserB = ReceiveUser; TempChat.UserA.LastAccess = DateTime.Now; TempChat.UserB.LastAccess = DateTime.Now; TempChat.UserA.IsActive = true; TempChat.UserB.IsActive = false; TempChat.UserA.IsEnter = true; TempChat.UserB.IsEnter = false; //TempChat.Person1.IsChatvisible = true; //TempChat.Person2.IsChatvisible = true; TempChat.IsStarted = false; //Original: TempChat.UserDiscarded = ReceiveUser.Id; TempChat.UserDiscarded = ReceiveUser.PersonId; TempChat.Messages = new List <IMMessageDTO>(); Chats.Add(TempChat); return(TempChat); // this.Messages = new List<Ct1o1_Message_DTO>(); } }
private void ReceiveMessage(object chat, object message, object user) { int ChatId = Convert.ToInt32(chat.GetType().GetProperty("Id").GetValue(chat).ToString()); string ChatName = chat.GetType().GetProperty("Name").GetValue(chat).ToString(); int UserId = Convert.ToInt32(user.GetType().GetProperty("Id").GetValue(user)); string UserNickName = user.GetType().GetProperty("Name").GetValue(user).ToString(); string UserLastName = user.GetType().GetProperty("LastName").GetValue(user).ToString(); string UserFirstName = user.GetType().GetProperty("FirstName").GetValue(user).ToString(); string MessageText = (string)message.GetType().GetProperty("Text").GetValue(message); try { using (ISession session = NHibernateHelper.OpenSession()) { Chat ch = new Chat(ChatId, ChatName, session); User us = new User(UserId, UserNickName, UserLastName, UserFirstName, session); Message ms = new Message(MessageText, ch, us); using (ITransaction transaction = session.BeginTransaction()) { ch.AddMessage(ms, session); transaction.Commit(); } if (ExistsOpenChat(ch.Id)) { OpenedChat.ActiveChat.MessagesCollection.Add(ms); OpenedChat.LastMessage = ms; } if (Chats.SingleOrDefault(c => c.Id == ch.Id) == null) { Chats.Add(ch); } } } catch { throw; } }
public static async Task AddChat(long chatID) { if (Chats.All(x => x.Id != chatID)) { await using (var db = new Database()) { var chat = new Chat { Id = chatID, DisableAnnouncements = false, DisableEvents = true, Locale = "ru" }; Chats.Add(chat); await db.Chats.AddAsync(chat); await db.SaveChangesAsync(); Log.Information($"Added chat '{chatID}' to the chat list"); } } }
public void EnsureAndOpenChat(AngebotViewModel angebotVM) { foreach (var chat in Chats) { if (chat.AngebotViewModel.Angebot.Id == angebotVM.Angebot.Id) { Open(chat); return; } } var chatInfo = new ChatInfo(); chatInfo.AngebotID = angebotVM.Angebot.Id; chatInfo.NachrichtenAccess = angebotVM.Angebot.NachrichtenAccess; chatInfo.GegenseiteAnbieterID = angebotVM.Angebot.AnbieterId; var chatVM = new ChatViewModel(chatInfo, Factory.GetChatPollingService(), Factory.GetChatService(), Factory.GetLoginService(), Factory.GetChatBufferService(), Factory.GetProfilService(), angebotVM.Angebot); Chats.Add(chatVM); Open(chatVM); }
public async Task ExecuteLoadChatsCommand() { IsBusy = true; try { Chats.Clear(); var chats = await DataStore.GetChats(Local.LocalUser.Id); foreach (var chat in chats) { Chats.Add(new ChatVM(chat, Local.LocalUser.Id)); } } catch (Exception ex) { Debug.WriteLine(ex); } finally { IsBusy = false; } }
private void Initialize() { if (Chats == null) { Chats = new ObservableCollection <IChat>(); } imageService = _generalDataService.GetService(SettingsRegistry.ServiceTitleImageSaver); ImageServiceConfig = imageService.Config; StatusToImagePath = ImageServiceConfig.GetParameterValue("FilenameStatus") as string; ChatsView = CollectionViewSource.GetDefaultView(Chats) as ListCollectionView; ChatsView.CustomSort = new SortViewerCount(); _dataService.ChatStatusHandler = (chat) => { UI.Dispatch(() => { Chats.RemoveAll(item => item.ChatName == chat.ChatName); if (chat.Enabled == true) { Chats.Add(chat); chat.Status.PropertyChanged += (o, e) => { if (ImageServiceConfig.Enabled) { IsNeedSave = true; IsNeedSave = false; } }; } if (ChatsView.NeedsRefresh) { ChatsView.Refresh(); } }); }; AppConfig = Ubiquitous.Default.Config.AppConfig; }
//属于命令ChatWithUserCommand private void ChatWithUser(object obj) { ChatListVisibility = Visibility.Visible; ChatMainVisibility = Visibility.Visible; FriendListVisibility = Visibility.Hidden; FriendMainVisibility = Visibility.Hidden; //查看有无现有聊天 bool ExistChat = false; if (Chats.Count != 0) { var searchedChats = from c in Chats where c.Name == selectedUser.NickName select c; if (searchedChats.Count() != 0) { ExistChat = true; } } //若已存在,则进入聊天 if (ExistChat) { SelectedChat = (from c in Chats where c.Name == selectedUser.NickName select c).Single(); } //若不存在,则创建聊天 else { PrivateChat newPrivateChat = new PrivateChat(selectedUser); Chats.Add(newPrivateChat); SelectedChat = newPrivateChat; dataService.GetAllChats(); Utilities.Messenger.Default.Send(new UpdateChatsMessage(Chats)); } }
private void Initialize() { if (_dataService == null || Chats == null) { return; } if (Chats.Count > 0) { Chats.Clear(); } foreach (var chat in _dataService.Chats.ToList()) { if (chat is IChatUserList) { Chats.Add(new ChatUserListViewModel() { Chat = chat, UserList = (chat as IChatUserList).ChatUsers, }); } } }
public MockMainViewModel() { Chats.Add(new MockPublicChatViewModel("Public")); }
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(); }
private void CallbackOnNeedUpdateChats(object sender, EventArgs e) { if (sender is UpdateChatsResult data) { lock (lockChat) { if (!String.IsNullOrEmpty(SearchUserText)) { return; } _users = data.Users; if (SendToChat != null) { var removeChat = Chats.Where(x => x.Users.Count == 2).ToList(); foreach (var chat in removeChat) { Chats.Remove(chat); } } foreach (var newChatData in data.Chats) { var oldChat = Chats.SingleOrDefault(x => x.ChatGuid == newChatData.ChatGuid); if (oldChat != null) { oldChat.ChatName = newChatData.ChatName; oldChat.Users.Clear(); foreach (var userGuid in newChatData.UserGuids) { if (userGuid == CurrentUser.Guid) { continue; } var newUser = new UserModel(); var user = data.Users.Single(x => x.Guid == userGuid); newUser.Guid = userGuid; newUser.Login = user.Login; newUser.Name = user.Name; newUser.Surname = user.Surname; newUser.Patronymic = user.Patronymic; newUser.Email = user.Email; newUser.IsOnline = user.IsOnline; newUser.Position = user.Position; newUser.EmployeePhoto = ImageHelper.ByteToImageSource(user.EmployeePhoto) ?? _emptyPhoto; oldChat.Users.Add(newUser); } } else { ChatModel newChat = new ChatModel(); newChat.ChatGuid = newChatData.ChatGuid; newChat.ChatName = newChatData.ChatName; foreach (var userGuid in newChatData.UserGuids) { if (userGuid == CurrentUser.Guid) { continue; } var newUser = new UserModel(); var user = data.Users.Single(x => x.Guid == userGuid); newUser.Guid = userGuid; newUser.Login = user.Login; newUser.Name = user.Name; newUser.Surname = user.Surname; newUser.Patronymic = user.Patronymic; newUser.Email = user.Email; newUser.IsOnline = user.IsOnline; newUser.Position = user.Position; newUser.EmployeePhoto = ImageHelper.ByteToImageSource(user.EmployeePhoto) ?? _emptyPhoto; newChat.Users.Add(newUser); } Chats.Add(newChat); } } _oldChatsModel = new ObservableCollection <ChatModel>(); if (Chats != null) { foreach (var chat in Chats) { _oldChatsModel.Add((ChatModel)chat.Clone()); } } } } }
public void CreateChat(string ConfigPrefix, string SourceChatId) { if (!Sources.ContainsKey(SourceChatId)) { return; } RatChat.Core.IChatSource ichat = Activator.CreateInstance(Sources[SourceChatId]) as RatChat.Core.IChatSource; ichat.ConfigPrefix = ConfigPrefix; ichat.OnLoad(ChatConfigStorage); ichat.OnNewMessagesArrived += ichat_OnNewMessagesArrived; if (ichat.SmilesUri != null) { foreach (var smile in ichat.SmilesUri) { SmilesDataDase.AddSmileTuple(smile.Key, smile.Value); } } UserControl customView = ichat.CreateCustomView(); if (customView == null) { RatChat.Controls.VisualChatCtrl vchat = new Controls.VisualChatCtrl(); vchat.Manager = this; vchat.Tag = new Tuple <RatChat.Core.IChatSource, string>(ichat, SourceChatId); Chats.Add(vchat); vchat.ConnectToChatSource(ichat); } else { RatChat.Controls.CustomControlContainer vchat = new Controls.CustomControlContainer(); vchat.Manager = this; vchat.Tag = new Tuple <RatChat.Core.IChatSource, string>(ichat, SourceChatId); Chats.Add(vchat); vchat.ConnectToChatSource(customView, ichat); } RatChat.Core.IChatListener iListener = ichat as RatChat.Core.IChatListener; if (iListener != null) { // При добавлении Listener, ищу ВСЕ Source и подписываюсь foreach (FrameworkElement fe in Chats) { RatChat.Core.IChatSource i = ((Tuple <RatChat.Core.IChatSource, string>)fe.Tag).Item1; i.OnNewMessagesArrived += iListener.OnNewMessageReceived; } } else { // При добавлении Source, ищу ВСЕ Listeners и подписываю foreach (FrameworkElement fe in Chats) { RatChat.Core.IChatSource i = ((Tuple <RatChat.Core.IChatSource, string>)fe.Tag).Item1; RatChat.Core.IChatListener il = i as RatChat.Core.IChatListener; if (il != null) { ichat.OnNewMessagesArrived += il.OnNewMessageReceived; } //i.OnNewMessagesArrived += iListener.OnNewMessageReceived; } } }