示例#1
0
        private async Task AddLog(SocketUserMessage message, IGuild guild, CommandContext context)
        {
            try
            {
                var logMsg = $"{message.Author.Username} performed: '{message.Content}'";
                if (message.MentionedUsers.Any())
                {
                    logMsg += $" Mentioned users: {string.Join(", ", message.MentionedUsers.Select(x => $"{x.Username}"))}";
                }

                await _activityLogService.AddActivityLog((long)guild.Id, (long)message.Author.Id, (long)message.Channel.Id, message.Content?.Split(' ')?[0], logMsg);
            }
            catch (Exception ex)
            {
                await context.Channel.SendMessageAsync(ex.Message);
            }
        }
        public void OnActionExecuting(ActionExecutingContext filterContext)
        {
            //Stores the Request in an Accessible object
            var request = filterContext.HttpContext.Request;

            var actionName = (string)filterContext.RouteData.Values["action"];

            //Generate an audit
            var activityLog = new ActivityLog()
            {
                //Our Username (if available)
                UserName = (request.IsAuthenticated) ? filterContext.HttpContext.User.Identity.Name : "Anonymous",
                //The URL that was accessed
                UrlAccessed = request.RawUrl,
                //Creates our Timestamp
                ActivityDate = DateTime.UtcNow,
                //Action type from controller
                ActivityType = actionName,
                //What is saved for Comments column?
            };

            _activityLogService.AddActivityLog(activityLog);
            _activityLogService.SaveChanges();
        }