public override object Deserialize(IDictionary<string, object> dictionary, Type type, JavaScriptSerializer serializer)
        {
            WfClientAuthorizationInfo auInfo = new WfClientAuthorizationInfo();

            auInfo.OriginalActivityID = dictionary.GetValue("originalActivityID", string.Empty);
            auInfo.UserID = dictionary.GetValue("userID", string.Empty);
            auInfo.IsProcessAdmin = dictionary.GetValue("isProcessAdmin", false);
            auInfo.IsProcessViewer = dictionary.GetValue("isProcessViewer", false);
            auInfo.InMoveToMode = dictionary.GetValue("inMoveToMode", false);
            auInfo.InMoveToStatus = dictionary.GetValue("inMoveToStatus", false);
            auInfo.IsInAcl = dictionary.GetValue("isInAcl", false);

            return auInfo;
        }
        public WfClientAuthorizationInfo GetAuthorizationInfo(IWfProcess process, string originalActivityID, string userID)
        {
            WfClientAuthorizationInfo result = new WfClientAuthorizationInfo();

            result.InMoveToMode = GetInMoveToMode(process, originalActivityID, userID);
            result.InMoveToStatus = GetInMoveToStatus(process, originalActivityID);
            result.IsProcessAdmin = GetIsProcessAdmin(process, userID);
            result.IsProcessViewer = GetIsProcessViewer(process, userID);
            result.IsInAcl = process.IsUserInAcl(new OguUser(userID));
            result.OriginalActivityID = originalActivityID;
            result.UserID = userID;

            return result;
        }