test
This commit is contained in:
@@ -906,66 +906,74 @@ namespace ChatController
|
||||
|
||||
this.Dispatch(() =>
|
||||
{
|
||||
foreach (var contactDependencyObject in _ContactList)
|
||||
try
|
||||
{
|
||||
foreach (var newContact in updatedContacts)
|
||||
foreach (var contactDependencyObject in _ContactList)
|
||||
{
|
||||
if (contactDependencyObject.Contact.GroupId == newContact.GroupId)
|
||||
foreach (var newContact in updatedContacts)
|
||||
{
|
||||
// ReceivedMessage kann null sein!
|
||||
if (!(contactDependencyObject.Contact.ReceivedMessage is null) && !contactDependencyObject.Contact.ReceivedMessage.Id.Equals(newContact.ReceivedMessage?.Id))
|
||||
if (contactDependencyObject.Contact.GroupId == newContact.GroupId)
|
||||
{
|
||||
contactDependencyObject.Contact.ReceivedMessage = newContact.ReceivedMessage;
|
||||
contactDependencyObject.Contact.TimeStamp = newContact.TimeStamp;
|
||||
|
||||
Contact selectedContact = null;
|
||||
|
||||
if(Clientlist.SelectedItem is ContactDependencyObject selectedContactDependencyObject)
|
||||
// ReceivedMessage kann null sein!
|
||||
if (!(contactDependencyObject.Contact.ReceivedMessage is null) && !contactDependencyObject.Contact.ReceivedMessage.Id.Equals(newContact.ReceivedMessage?.Id))
|
||||
{
|
||||
selectedContact = selectedContactDependencyObject.Contact;
|
||||
}
|
||||
contactDependencyObject.Contact.ReceivedMessage = newContact.ReceivedMessage;
|
||||
contactDependencyObject.Contact.TimeStamp = newContact.TimeStamp;
|
||||
|
||||
// Angemeldeter Benutzer
|
||||
var userOid = Chat.ChatDaten.LoggedInUser.Response.User.Oid;
|
||||
Contact selectedContact = null;
|
||||
|
||||
var senderId = contactDependencyObject.Contact.ReceivedMessage?.UserId;
|
||||
var receiverId = userOid;
|
||||
var receiverGroupId = newContact.GroupId;
|
||||
var selectedGroupId = selectedContact?.GroupId;
|
||||
|
||||
if (senderId != receiverId && (_IsInBackground || receiverGroupId != selectedGroupId))
|
||||
{
|
||||
if (!(ContainingWindow is null))
|
||||
if(Clientlist.SelectedItem is ContactDependencyObject selectedContactDependencyObject)
|
||||
{
|
||||
ContainingWindow.Icon = Utils.ConvertIconToImageSource(Resource.oC_favico_NewMessage);
|
||||
selectedContact = selectedContactDependencyObject.Contact;
|
||||
}
|
||||
|
||||
ShowNotification(newContact.Name, newContact.ReceivedMessage, newContact.GroupId);
|
||||
}
|
||||
// Angemeldeter Benutzer
|
||||
var userOid = Chat.ChatDaten.LoggedInUser.Response.User.Oid;
|
||||
|
||||
// Wenn der momentan ausgewählte Kontakt der aktuelle Kontakt in der Schleife ist, werden die Nachrichten nicht als ungelesen angezeigt, sonst schon.
|
||||
if (!(CurrentContact is null) && newContact.GroupId == CurrentContact.GroupId)
|
||||
{
|
||||
contactDependencyObject.Contact.HasUnreadMessages = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
contactDependencyObject.Contact.HasUnreadMessages = true;
|
||||
contactDependencyObject.Contact.IsNewMessage = true;
|
||||
var senderId = contactDependencyObject.Contact.ReceivedMessage?.UserId;
|
||||
var receiverId = userOid;
|
||||
var receiverGroupId = newContact.GroupId;
|
||||
var selectedGroupId = selectedContact?.GroupId;
|
||||
|
||||
if (senderId != receiverId && (_IsInBackground || receiverGroupId != selectedGroupId))
|
||||
{
|
||||
if (!(ContainingWindow is null))
|
||||
{
|
||||
ContainingWindow.Icon = Utils.ConvertIconToImageSource(Resource.oC_favico_NewMessage);
|
||||
}
|
||||
|
||||
ShowNotification(newContact.Name, newContact.ReceivedMessage, newContact.GroupId);
|
||||
}
|
||||
|
||||
// Wenn der momentan ausgewählte Kontakt der aktuelle Kontakt in der Schleife ist, werden die Nachrichten nicht als ungelesen angezeigt, sonst schon.
|
||||
if (!(CurrentContact is null) && newContact.GroupId == CurrentContact.GroupId)
|
||||
{
|
||||
contactDependencyObject.Contact.HasUnreadMessages = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
contactDependencyObject.Contact.HasUnreadMessages = true;
|
||||
contactDependencyObject.Contact.IsNewMessage = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!updatedContacts.Contains(contactDependencyObject.Contact))
|
||||
{
|
||||
_ContactList.ToList().Remove(contactDependencyObject);
|
||||
}
|
||||
}
|
||||
|
||||
if (!updatedContacts.Contains(contactDependencyObject.Contact))
|
||||
{
|
||||
_ContactList.ToList().Remove(contactDependencyObject);
|
||||
}
|
||||
ContactList.Sort((x, y) => DateTime.Compare(y.Contact.TimeStamp, x.Contact.TimeStamp));
|
||||
OnPropertyChanged(nameof(ChatMessages));
|
||||
OnPropertyChanged(nameof(ContactList));
|
||||
}
|
||||
catch(Exception exception)
|
||||
{
|
||||
Console.WriteLine(exception);
|
||||
throw;
|
||||
}
|
||||
|
||||
ContactList.Sort((x, y) => DateTime.Compare(y.Contact.TimeStamp, x.Contact.TimeStamp));
|
||||
OnPropertyChanged(nameof(ChatMessages));
|
||||
OnPropertyChanged(nameof(ContactList));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user