public void QueueActivity(ActivityRequest activity, bool approved)
        {
            activity.Id = nextActivityID++;

            if (!approved)
            {
                //Submit as request instead
                pendingActivityRequests.Add(activity.Id, activity);
                communication.NotifyPendingNotification(activity.Id, activity.ToString());
                return;
            }

            activityDict.Add(activity.Id, activity);
            communication.NotifyNotification(activity.Id, activity.ToString());
            activityWriter.TryWrite(activity);
        }
        public bool UpdatePendingRequest(int index, bool approve)
        {
            if (!pendingActivityRequests.ContainsKey(index))
            {
                return(false);
            }

            ActivityRequest activity = pendingActivityRequests[index];

            pendingActivityRequests.Remove(index);

            if (approve)
            {
                //Queue approved activity
                activityDict.Add(activity.Id, activity);
                communication.NotifyNotification(activity.Id, activity.ToString());
                activityWriter.TryWrite(activity);
            }

            return(true);
        }