예제 #1
0
        public void SetNewChat()
        {
            NewChat = new Chat()
            {
                UniqueId = Guid.NewGuid().ToString(),
            };

            NewChatCreated?.Invoke(this, EventArgs.Empty);
        }
예제 #2
0
        public void BufferNachricht(Angebot angebot, ChatNachricht nachricht, string nachrichtenAccess, bool isNew)
        {
            ChatInfo newChat = null;
            string   gegenseiteAnbieterID;

            if (_loginService.AnbieterId == nachricht.SenderAnbieterID)
            {
                gegenseiteAnbieterID = nachricht.EmpfaengerAnbieterID;
            }
            else
            {
                gegenseiteAnbieterID = nachricht.SenderAnbieterID;
            }

            var bufferedEntry = _buffer.Where(b => b.AngebotID == angebot.Id && b.GegenseiteAnbieterID == gegenseiteAnbieterID).FirstOrDefault();

            if (bufferedEntry != null)
            {
                if (string.IsNullOrEmpty(bufferedEntry.NachrichtenAccess) && !string.IsNullOrEmpty(nachrichtenAccess))
                {
                    bufferedEntry.NachrichtenAccess = nachrichtenAccess;
                }
                if (bufferedEntry.Nachrichten.Where(n => n.Id == nachricht.Id).Count() == 0)
                {
                    bufferedEntry.Nachrichten.Add(nachricht);
                }

                if (isNew)
                {
                    bufferedEntry.Ungelesen = true;
                }
            }
            else
            {
                newChat                   = new ChatInfo();
                newChat.AngebotID         = angebot.Id;
                newChat.AnbieterID        = angebot.AnbieterId;
                newChat.NachrichtenAccess = nachrichtenAccess;
                newChat.Nachrichten.Add(nachricht);
                newChat.GegenseiteAnbieterID = gegenseiteAnbieterID;
                newChat.Ungelesen            = true;

                _buffer.Add(newChat);
            }
            PersistBuffer();

            if (newChat != null)
            {
                NewChatCreated?.Invoke(newChat);
            }
        }