public async Task <bool> Run(JobInfo jobInfo, CancellationToken cancelToken)
        {
            if (!_loginService.IsLoggedIn())
            {
                return(true);
            }

            var erhalteneNachrichten = new List <ChatNachricht>();

            await foreach (var angebot in _angebotService.GetMeineAsync())
            {
                var nachrichten = await _chatService.GetNachrichtenAsync(angebot, true);

                foreach (var nachricht in nachrichten)
                {
                    erhalteneNachrichten.Add(nachricht);
                }
            }

            var buffered = _chatBufferService.LoadBufferedChats();

            foreach (var chat in buffered)
            {
                var nachrichten = await _chatService.GetNachrichtenAsync(await _angebotService.LoadAngebotAsync(chat.AnbieterID + "/" + chat.AngebotID, DateTime.MinValue), true);

                foreach (var nachricht in nachrichten)
                {
                    erhalteneNachrichten.Add(nachricht);
                }
            }
            foreach (var nachricht in erhalteneNachrichten)
            {
                if (!string.IsNullOrEmpty(nachricht.TechnischerNachrichtenTyp) && nachricht.TechnischerNachrichtenTyp == Reservierung.TECHNISCHER_NACHRICHTENTYP)
                {
                    _notification.SendChatNotificationAsync(nachricht.SenderAnbieterID, Reservierung.GetChatMessageText(nachricht.Nachricht), nachricht.AngebotID, nachricht.SenderAnbieterID);
                }
                else
                {
                    _notification.SendChatNotificationAsync(nachricht.SenderAnbieterID, nachricht.Nachricht, nachricht.AngebotID, nachricht.SenderAnbieterID);
                }
            }
            return(true);
        }
Exemple #2
0
        public async Task ActivateForegroundChatPollingAsync()
        {
            if (!_loginService.IsLoggedIn())
            {
                return;
            }

            await DeactivateForegroundChatPollingAsync();

            await foreach (var angebot in _angebotService.GetMeineAsync())
            {
                _chatPollingService.StartPolling(angebot);
            }

            var buffered = _chatBufferService.LoadBufferedChats();

            foreach (var chat in buffered)
            {
                _chatPollingService.StartPolling(await _angebotService.LoadAngebotAsync(chat.AnbieterID + "/" + chat.AngebotID, DateTime.MinValue));
            }
        }
Exemple #3
0
 public List <ChatInfo> GetChatListe()
 {
     return(_chatBufferService.LoadBufferedChats());
 }