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 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))); }
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); }
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)); } }