func makeAndPushEventReply(currentUser *users.User, event *notifications.Event,
	entity notifications.Entity, onlineUser *ws.OnlineUser) {

	// entry := entity.CausedEntry()

	switch event.VType {
	case notifications.VT_DEFAULT, notifications.VT_NEW_POST, notifications.VT_NEW_TODO,
		notifications.VT_NEW_CHAT, notifications.VT_POST_NEED_ACK, notifications.VT_COMMENT_NEED_ACK,
		notifications.VT_NEW_COMMENT, notifications.VT_NEW_KNOWLEDGE, notifications.VT_NEW_SHARED_REQUEST,
		notifications.VT_FORWARDED_SHARED_REQUEST, notifications.VT_NEW_QORTEX_BROADCAST,
		notifications.VT_NEW_QORTEX_FEEDBACK, notifications.VT_NEW_INNER_MESSAGE:

		reply := CountNotification{
			Method:  "Counter.Refresh",
			GroupId: entity.CausedEntry().GroupId.Hex(),
			MyCount: services.UserCountData(onlineUser.AllDBs(), onlineUser.User),
		}

		if event.IsFollowed && currentUser.Id != onlineUser.User.Id {
			reply.Method = "Counter.NewArrived"
			reply.NewEntry = true
			reply.EntryId = entity.NewEntryId().Hex()
			reply.NewMessageNumber = onlineUser.AddNewMessageId(reply.EntryId)
		}
		onlineUser.SendReply(reply)

	case notifications.VT_LIKE, notifications.VT_REMOVE_LIKE:

		reply := CountNotification{
			Method:  "Counter.Refresh",
			GroupId: entity.CausedEntry().GroupId.Hex(),
			MyCount: services.UserCountData(onlineUser.AllDBs(), onlineUser.User),
		}
		onlineUser.SendReply(reply)
	}
	return
}