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(); }