/// <summary>
 /// Called when [get user information].
 /// </summary>
 /// <param name="args">The arguments.</param>
 protected virtual void OnGetUserInfo(GetCurrentUserInfoArgs args)
 {
     GetCurrentUserInfo(this, args);
 }
        /// <summary>
        /// Extracts the value.
        /// </summary>
        /// <param name="setName">Name of the set.</param>
        /// <param name="path">The path.</param>
        /// <param name="source">The source.</param>
        /// <returns>System.Object.</returns>
        public object ExtractValue(string setName, string path, object source)
        {
            if (setName == SourceFieldSetNames.CurrentUserInfo)
            {
                var args = new GetCurrentUserInfoArgs();

                OnGetUserInfo(args);

                if (args.UserInfoValues.ContainsKey(path))
                    return args.UserInfoValues[path];

                return null;
            }

            return getValue(path, source);
        }