예제 #1
0
        /// <summary>
        /// Sets the user data to flowed user.
        /// </summary>
        /// <param name="auditEvent">The audit event.</param>
        /// <exception cref="InvalidOperationException">No 'UserId' data item found in flowed data.</exception>
        internal static void SetUserDataToFlowedUser(AuditEvent auditEvent)
        {
            Contract.Requires(auditEvent != null);
            Guard.AgainstNullArgument(nameof(auditEvent), auditEvent);
            Contract.EndContractBlock();

            var userId = AuditContext.GetPersistentDataOrDefault("UserId") as string;

            if (string.IsNullOrWhiteSpace(userId))
            {
                throw new InvalidOperationException("No 'UserId' data item found in flowed data.");
            }

            auditEvent.UserId       = userId;
            auditEvent.UserName     = AuditContext.GetPersistentDataOrDefault("UserName") as string;
            auditEvent.UserEmail    = AuditContext.GetPersistentDataOrDefault("UserEmail") as string;
            auditEvent.UserIdentity = AuditContext.GetPersistentDataOrDefault("UserIdentity") as string;
        }