コード例 #1
0
        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));
            });
        }
コード例 #2
0
        public async Task ReservierungBestaetigenAsync(Reservierung reservierung)
        {
            var angebot = await _angebotService.LoadAngebotAsync(reservierung.AnbieterID + "/" + reservierung.AngebotID, DateTime.MinValue);

            if (_loginService.AnbieterId != reservierung.AnbieterID)
            {
#if DEBUG
                _notificationService.SendScheduledReservierungNotificationAsync("Reservierungs-Erinnerung!", "'" + angebot.Ueberschrift + "' wurde für dich morgen reserviert - denke an die Abholung!", DateTimeOffset.Now.AddSeconds(10));
#endif
                _notificationService.SendScheduledReservierungNotificationAsync("Reservierungs-Erinnerung!", "'" + angebot.Ueberschrift + "' wurde für dich morgen reserviert - denke an die Abholung!", reservierung.Zeitraum.Von.AddDays(-1).Date);
            }

            List <Reservierung> reservierungen = new List <Reservierung>();
            try
            {
                var reservierungenVault = _vault.Retrieve(NUTZ_MICH_RES, _loginService.AnbieterId);
                var savedRes            = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Reservierung> >(reservierungenVault.Password);
                reservierungen.AddRange(savedRes);
                _vault.Remove(reservierungenVault);
            }
            catch { }

            reservierungen.Add(reservierung);

            _vault.Add(new PasswordCredential(NUTZ_MICH_RES, _loginService.AnbieterId, Newtonsoft.Json.JsonConvert.SerializeObject(reservierungen)));
        }
コード例 #3
0
        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);
        }
コード例 #4
0
ファイル: ChatController.cs プロジェクト: TopperDEL/NutzMich
        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));
            }
        }