public void SetNewChat() { NewChat = new Chat() { UniqueId = Guid.NewGuid().ToString(), }; NewChatCreated?.Invoke(this, EventArgs.Empty); }
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); } }