private ChatCallbackObservable(int employeeId)
        {
            observers        = new List <IChatCallbackObserver>();
            employeeUoW      = UnitOfWorkFactory.CreateForRoot <Employee>(employeeId, $"[CS]Слежение за чатами");
            unreadedMessages = ChatMessageRepository.GetLastChatMessages(employeeUoW, employeeUoW.Root);

            //Initiates new message check every 30 seconds.
            timerId = GLib.Timeout.Add(refreshInterval, new GLib.TimeoutHandler(refresh));
        }
        private bool refresh()
        {
            var tempUnreadedMessages = ChatMessageRepository.GetLastChatMessages(employeeUoW, employeeUoW.Root);

            foreach (var item in tempUnreadedMessages)
            {
                if (!unreadedMessages.ContainsKey(item.Key) || unreadedMessages[item.Key] != item.Value)
                {
                    NotifyChatUpdate(item.Key);
                }
            }
            unreadedMessages = tempUnreadedMessages;
            return(true);
        }