private void ChangeMessages(ModifyModel modifyModel, CommunityViewModel changingViewModel)
        {
            switch (modifyModel.Modification.ModificationType)
            {
            case ModificationType.Add:
                AddMessage();
                break;

            case ModificationType.Remove:
                RemoveMessage();
                break;

            case ModificationType.Change:
                RemoveMessage();
                AddMessage();
                break;
            }

            void AddMessage()
            {
                MessageModel     messageModel = modifyModel.Modification.NewValue.AssertTypeOf <MessageModel>();
                MessageViewModel viewModel    = messageModel.CreateViewModel(changingViewModel);

                changingViewModel.AddItem(viewModel);

                (changingViewModel.FindItemByType <AgentViewModel>()?.AvailableItems
                 ?? changingViewModel.FindItemByType <MessageViewModel>()?.AvailableItems)?.AvailableMessages.Add(viewModel);
            }

            void RemoveMessage()
            {
                MessageModel     messageModel = modifyModel.Modification.OldValue.AssertTypeOf <MessageModel>();
                MessageViewModel viewModel    = (MessageViewModel)changingViewModel.FindViewItemById(messageModel.Id);

                changingViewModel.RemoveItem(viewModel);

                (changingViewModel.FindItemByType <AgentViewModel>()?.AvailableItems
                 ?? changingViewModel.FindItemByType <MessageViewModel>()?.AvailableItems)?.AvailableMessages.Remove(viewModel);
            }
        }