public ChatViewModel(ChatInfo chatInfo, IChatPollingService chatPollingService, IChatService chatService, ILoginService loginService, IChatBufferService chatBufferService, IProfilService profilService, Angebot angebot) { _chatPollingService = chatPollingService; _chatPollingService.NachrichtErhalten += _chatPollingService_NachrichtErhalten; _chatService = chatService; _loginService = loginService; _chatBufferService = chatBufferService; _profilService = profilService; Nachrichten = new ObservableCollection <ChatNachrichtViewModel>(chatInfo.Nachrichten.Select(c => new ChatNachrichtViewModel(c) { IchBinEmpfaenger = _loginService.AnbieterId == c.EmpfaengerAnbieterID, IchWarSender = _loginService.AnbieterId == c.SenderAnbieterID })); AngebotViewModel = new AngebotViewModel(angebot); _chatPollingService.StartPolling(angebot); _chatInfo = chatInfo; InitGegenseiteAsync(); }
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 LoadAngebotAsync() { AngebotVM = new AngebotViewModel(await Factory.GetAngebotService().LoadAngebotAsync(Reservierung.AnbieterID + "/" + Reservierung.AngebotID, DateTime.MinValue)); }