Nullabfrage hinzugefügt

This commit is contained in:
2023-06-28 19:04:03 +02:00
parent 6ea4a47b98
commit c691dd281f
6 changed files with 88 additions and 72 deletions

View File

@@ -46,6 +46,7 @@
<HintPath>..\PrototypChat\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Web" />

View File

@@ -319,7 +319,7 @@ namespace ChatController
_ContainingWindow.Activate();
var selectedContact = _ContactList?.FirstOrDefault(f => f?.Contact.GroupId == pGroupId);
if(!(selectedContact is null))
if(!(selectedContact?.Contact is null))
{
SelectContact(selectedContact.Contact);
}
@@ -374,13 +374,16 @@ namespace ChatController
return;
}
if(Clientlist?.SelectedItem is ContactDependencyObject selectedContactDependencyObject)
if(Clientlist?.SelectedItem is ContactDependencyObject selectedContactDependencyObject && !(selectedContactDependencyObject.Contact is null))
{
SelectContact(selectedContactDependencyObject.Contact);
}
}
// ToDo: Hier kommt es immer wieder zu einer NullPointerException
private void SelectContact(Contact contact)
{
try
{
if(contact is null)
{
@@ -391,6 +394,7 @@ namespace ChatController
ShouldInterruptContactsThread = true;
// Zeigt die Warteanimation (das Rädchen)
StartWaitingImmediately();
_ScrollPrueferAktivieren = false;
@@ -399,11 +403,12 @@ namespace ChatController
{
contact.HasUnreadMessages = false;
Clientlist.Items.Refresh();
Clientlist?.Items.Refresh();
OnPropertyChanged(nameof(ContactList));
}
var currentContact = contact;
contact.IsNewMessage = false;
var shouldChangeIcon = _ContactList.Any(contactDependencyObject => contactDependencyObject.Contact.IsNewMessage);
@@ -452,6 +457,11 @@ namespace ChatController
});
});
}
catch(Exception exception)
{
throw;
}
}
private void SetContextHandler()
{

View File

@@ -925,11 +925,17 @@ namespace ChatController.HauptKlassen
private static List<ChatMessage> AddSeparators(List<ChatMessage> chatMessages)
{
if(chatMessages is null)
{
chatMessages = new List<ChatMessage>();
}
var messagesWithoutSeparators = chatMessages.Where(message => !message.IsSeparator).OrderBy(message => message.SendTime).ToList();
var separators = new List<ChatMessage>();
var previousMessage = messagesWithoutSeparators.OrderBy(message => message.SendTime).FirstOrDefault();
foreach(var message in messagesWithoutSeparators.OrderBy(message => message.SendTime))
{
if(!message.Equals(previousMessage) && !(previousMessage is null))

View File

@@ -1,5 +1,4 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Allgemeine Informationen über eine Assembly werden über die folgenden

View File

@@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="ClrHeapAllocationAnalyzer" version="3.0.0" targetFramework="net45" />
<package id="RestSharp" version="105.2.3" targetFramework="net45" />
</packages>

View File

@@ -7,6 +7,7 @@ namespace ownChat
public ExceptionWindow(Exception exception)
{
InitializeComponent();
ExceptionViewControl.Exception = exception;
}