示例#1
0
        public static string LogTypeDisplayName(this AdminLogType item)
        {
            var type   = item.GetType();
            var member = type.GetMember(item.ToString());
            DisplayAttribute displayName = (DisplayAttribute)member[0].GetCustomAttributes(typeof(DisplayAttribute), false).FirstOrDefault();

            if (displayName != null)
            {
                return(displayName.Name);
            }

            return(item.ToString());
        }
        public void Create(string adminId, AdminLogType logType, string targetedUserName, DateTime submitDate)
        {
            var log = new AdminLog
            {
                AdminId          = adminId,
                LogType          = logType,
                TargetedUserName = targetedUserName,
                SubmitDate       = submitDate
            };

            this.db.AdminLogs.Add(log);

            this.db.SaveChanges();
        }
        public override void OnActionExecuted(ActionExecutedContext context)
        {
            var          adminId          = this.userManager.GetUserId(context.HttpContext.User);
            var          targetedUserName = context.HttpContext.Request.Form["UserName"].ToString();
            AdminLogType logType          = AdminLogType.Ban;


            var allLogType = Enum.GetValues(typeof(AdminLogType)).Cast <AdminLogType>();

            foreach (var type in allLogType)
            {
                var typeAsString         = type.ToString().ToLower();
                var methodFullNameTokens = context.ActionDescriptor.DisplayName.Split('.');
                var nameToLower          = methodFullNameTokens[methodFullNameTokens.Length - 2].ToLower();

                if (nameToLower.StartsWith(typeAsString))
                {
                    logType = type;
                }
            }

            this.logs.Create(adminId, logType, targetedUserName, DateTime.UtcNow);
        }