Esempio n. 1
0
        public async Task <List <ChatNachricht> > GetNachrichtenAsync(Angebot angebot, bool onlyNewOnes)
        {
            await InitReadConnectionAsync();

            List <ChatNachricht> neueNachrichten = new List <ChatNachricht>();

            try
            {
                var nachrichtenItems = await _readConnection.ObjectService.ListObjectsAsync(_readConnection.Bucket, new ListObjectsOptions()
                {
                    Prefix = "Nachrichten/" + _loginService.AnbieterId + "/" + angebot.Id + "/", Recursive = true
                });

                foreach (var nachrichtItem in nachrichtenItems.Items)
                {
                    if (nachrichtItem.IsPrefix || nachrichtItem.Key.Contains("Token"))
                    {
                        continue;
                    }

                    var nachricht = await LoadNachrichtAsync(nachrichtItem.Key);

                    if (nachricht != null)
                    {
                        if (!string.IsNullOrEmpty(nachricht.TechnischerNachrichtenTyp) && nachricht.TechnischerNachrichtenTyp == Reservierung.TECHNISCHER_NACHRICHTENTYP)
                        {
                            await _reservierungService.ReservierungBestaetigenAsync(Newtonsoft.Json.JsonConvert.DeserializeObject <Reservierung>(nachricht.Nachricht));
                        }
                        _chatBufferService.BufferNachricht(angebot, nachricht, null, true);
                        neueNachrichten.Add(nachricht);
                    }
                }
            }catch
            {
            }

            if (onlyNewOnes)
            {
                return(neueNachrichten);
            }
            else
            {
                return(_chatBufferService.GetNachrichten(angebot).OrderByDescending(n => n.SendeDatum).ToList());
            }
        }
Esempio n. 2
0
        private async void ContentDialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
        {
            var deferral    = args.GetDeferral();
            var pruefFehler = await _reservierungService.CheckReservierungAsync(_vm.Reservierung);

            if (!string.IsNullOrEmpty(pruefFehler))
            {
                args.Cancel = true;
                MessageDialog error = new MessageDialog(pruefFehler, "Fehler");
                await error.ShowAsync();

                deferral.Complete();
                return;
            }

            var saved = await _reservierungService.SaveReservierungAsync(_vm.Reservierung);

            if (!saved)
            {
                args.Cancel = true;
                MessageDialog error = new MessageDialog("Fehler beim Speichern der Reservierung - bitte später noch einmal versuchen.", "Fehler");
                await error.ShowAsync();

                deferral.Complete();
                return;
            }
            await _reservierungService.ReservierungBestaetigenAsync(_vm.Reservierung);

            BefehlsNachricht                           = new ChatNachricht();
            BefehlsNachricht.AngebotID                 = _angebot.Id;
            BefehlsNachricht.EmpfaengerAnbieterID      = _vm.Reservierung.AusleiherID;
            BefehlsNachricht.TechnischerNachrichtenTyp = "Reservierung";
            BefehlsNachricht.SenderAnbieterID          = _angebot.AnbieterId;
            BefehlsNachricht.Nachricht                 = Newtonsoft.Json.JsonConvert.SerializeObject(_vm.Reservierung);
            BefehlsNachricht.SendeDatum                = DateTime.Now;

            await _chatService.SendNachrichtAsync(_angebot, BefehlsNachricht, _chatInfo.NachrichtenAccess, false);

            try
            {
                deferral.Complete();
            }catch
            {
            }
        }