public override void CloseChat(FrontendManager fm, ChatModel chat)
{
Trace.Call(fm, chat);
if (chat == ContactChat) {
Session.RemoveChat(chat);
ContactChat = null;
} else if (chat.ChatType == ChatType.Group) {
if (IsConnected) {
var groupchat = (XmppGroupChatModel)chat;
if (!groupchat.IsSynced) {
Session.RemoveChat(chat);
} else {
MucManager.LeaveRoom(chat.ID, ((XmppGroupChatModel)chat).OwnNickname);
}
} else {
Session.RemoveChat(chat);
}
} else if (chat.ChatType == ChatType.Person) {
Session.RemoveChat(chat);
} else {
#if LOG4NET
_Logger.Error("CloseChat(): Invalid chat type");
#endif
}
}