Example #1
0
        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();
        }
Example #2
0
        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));
 }