/// <summary> /// Gets the audit log data for the specified parameters /// </summary> /// <param name="logType">The type of the log entry (eg. 'Save')</param> /// <param name="userName">Name of the user responsible for the entry</param> /// <param name="dateFrom">The date to search from</param> /// <param name="searchTerm">An optional search term</param> /// <param name="dateTo">The date to search up to (inclusive)</param> /// <param name="itemsPerPage">How many items per page to retrieve</param> /// <param name="nodeId">The optional nodeId to search for</param> /// <param name="pageNumber">The page number</param> /// <param name="sortColumn">The column name to sort by</param> /// <param name="sortOrder">The sort order - either ascending or descending</param> /// <returns>A paged list of log data</returns> /// <remarks>/Umbraco/Backoffice/AuditLogViewer/AuditLog/GetLogData</remarks> public PagedLogEntryResult GetLogData(string logType = null, string userName = null, DateTime?dateFrom = null, DateTime?dateTo = null, int?nodeId = null, int itemsPerPage = 50, int pageNumber = 1, string sortColumn = "DateStamp", string sortOrder = "asc", string searchTerm = null) { var request = new LogSearchRequest() { DateFrom = dateFrom, DateTo = dateTo, ItemsPerPage = itemsPerPage, LogType = logType, NodeId = nodeId, PageNumber = pageNumber, SearchTerm = searchTerm, SortColumn = sortColumn, SortOrder = sortOrder, UserName = userName }; var paged = this.logService.SearchAuditLog(request); PagedLogEntryResult result = new PagedLogEntryResult() { CurrentPage = paged.CurrentPage, ItemsPerPage = paged.ItemsPerPage, LogEntries = paged.Items, TotalItems = paged.TotalItems, TotalPages = paged.TotalPages }; return(result); }
private async void btnSearch_Click(object sender, EventArgs e) { // var txtBoxes = this.Controls.OfType<TextBox>().ToArray(); //if (txtBoxes.All(txt => (txt.Name!="txtBox_FirstName" || txt.Name != "txtBox_LastName") && string.IsNullOrEmpty(txt.Text))){ // MessageBox.Show("Fields can't be empty"); // return; // } DateTime fromDateResult = default; DateTime toDateResult = default; DateTime.TryParseExact(mTxtBox_FromDate.Text, "dd.MM.yyyy", new CultureInfo("de-DE"), DateTimeStyles.None, out fromDateResult); DateTime.TryParseExact(mTxtBox_ToDate.Text, "dd.MM.yyyy", new CultureInfo("de-DE"), DateTimeStyles.None, out toDateResult); var req = new LogSearchRequest { FirstName = txtBox_FirstName.Text, LastName = txtBox_LastName.Text, FromDate = fromDateResult, ToDate = toDateResult, Entered = chcBox_Entered.Checked, Left = chcBox_Left.Checked }; var res = await _logService.Get <List <LogDTO> >(req); if (res != null) { dgv_Logs.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; dgv_Logs.DataSource = new BindingSource(res, null); dgv_Logs.Columns[0].Visible = false; dgv_Logs.Columns[3].Visible = false; dgv_Logs.Columns[4].Visible = false; dgv_Logs.Columns[7].Visible = false; } }
public HttpResponseMessage RequestLogSearch([FromBody] LogSearchRequest logSearchRequest) { var validationMessage = string.Empty; if (logSearchRequest == null || !logSearchRequest.Validate(out validationMessage)) { var errorMessageObject = new { message = string.IsNullOrWhiteSpace(validationMessage) ? "Invalid Request Body" : validationMessage }; var errorContent = new StringContent(JsonConvert.SerializeObject(errorMessageObject), Encoding.UTF8, GeneralConstants.HalJsonContentType); return(new HttpResponseMessage(HttpStatusCode.BadRequest) { Content = errorContent }); } var fromUtc = logSearchRequest.From.Value.ToUniversalTime(); var toUtc = logSearchRequest.To.Value.ToUniversalTime(); bool created; var request = _dataAccess.CreateRequest(logSearchRequest.Query, fromUtc, toUtc, logSearchRequest.CallbackEndpoint, out created); var successContent = new StringContent(_halRequestsBuilder.BuildLogSearchRequest(request), Encoding.UTF8, GeneralConstants.HalJsonContentType); if (created) { _searchLogJobManagement.EnqueueSearchLog(request); return(new HttpResponseMessage(HttpStatusCode.Created) { Content = successContent }); } return(new HttpResponseMessage(HttpStatusCode.OK) { Content = successContent }); }
public IActionResult Search(LogSearchRequest lsr) { /*IQueryable<Log> logQ = _ctx.Logs; * Console.WriteLine($"DEBUG3: {lsr.TimestampFrom.ToString()}"); * * * if (lsr.OrderId > 0) * { * logQ = logQ.Where(l => l.OrderId == lsr.OrderId); * } * * if (lsr.TimestampFrom.ToString() != "1/1/0001 12:00:00 AM" && * lsr.TimestampTo.ToString() != "1/1/0001 12:00:00 AM") * { * logQ = logQ.Where(l => l.Timestamp >= lsr.TimestampFrom && l.Timestamp <= lsr.TimestampTo); * }*/ /*else * { * logQ = _ctx.Logs.Where(l => l.Timestamp >= lsr.TimestampFrom && l.Timestamp <= lsr.TimestampTo); * }*/ //IEnumerable<Log> logs = logQ.ToList(); //TempData["logs"] = JsonConvert.SerializeObject(logs); TempData["logs"] = JsonConvert.SerializeObject(lsr); return(RedirectToAction("Index", "Log")); }
/// <summary> /// Searches the Audit Log table /// </summary> /// <param name="request">The search request criteria</param> /// <returns>A page of log results</returns> public Page <LogEntry> SearchAuditLog(LogSearchRequest request) { if (!IsValidOrderByParameter(request.SortColumn)) { throw new ArgumentOutOfRangeException("The order by value '" + request.SortColumn + "' is not a valid sort parameter."); } if (!IsValidOrderByDirectionParameter(request.SortOrder)) { throw new ArgumentOutOfRangeException("The order by value '" + request.SortOrder + "' is not a valid sort order."); } string sql = @"SELECT L.Id, N.[text] as Name, U.userName as UserName, L.Datestamp as DateStamp, L.logHeader as LogType, L.logComment as Comment, L.nodeId FROM umbracoLog L LEFT JOIN umbracoUser U ON L.userId = U.id LEFT JOIN umbracoNode N ON N.id = L.NodeId WHERE 1 = 1"; Sql query = new Sql(sql); if (!String.IsNullOrEmpty(request.LogType)) { query = query.Append(" AND L.LogHeader = @0", request.LogType); } if (!String.IsNullOrEmpty(request.UserName)) { query = query.Append(" AND U.userName = @0", request.UserName); } if (request.DateFrom.HasValue) { query = query.Append(" AND L.Datestamp >= @0", request.DateFrom.Value); } if (request.DateTo.HasValue) { query = query.Append(" AND L.Datestamp <= @0", request.DateTo.Value.AddDays(1)); } if (!String.IsNullOrEmpty(request.SearchTerm)) { query = query.Append(" AND (L.logComment LIKE @0 OR N.[text] LIKE @0)", "%" + request.SearchTerm + "%"); } if (request.NodeId.HasValue) { query = query.Append(" AND L.NodeId = @0", request.NodeId.Value); } if (request.SortColumn.InvariantEquals("id")) { request.SortColumn = "L.id"; } query = query.Append(" ORDER BY " + request.SortColumn + " " + request.SortOrder); return(db.Page <LogEntry>(request.PageNumber, request.ItemsPerPage, query)); }
public IActionResult Index() { //IEnumerable<Log> logs = _ctx.Logs.Skip(_logsPerPage * page).Take(_logsPerPage); //IEnumerable<Log> logs = JsonConvert.DeserializeObject<IEnumerable<Log>>() /*IEnumerable<Log> logs = null; * * if (TempData["logs"] != null) * { * logs = JsonConvert.DeserializeObject<IEnumerable<Log>>(TempData["logs"].ToString()); * } * * logs ??= new List<Log>(); * * return View(logs);*/ LogSearchRequest lsr = null; IEnumerable <Log> logs; LogDataContainer ldc = new LogDataContainer(); if (TempData["logs"] != null) { lsr = JsonConvert.DeserializeObject <LogSearchRequest>(TempData["logs"].ToString()); IQueryable <Log> logQ = _ctx.Logs; if (lsr.OrderId > 0) { logQ = logQ.Where(l => l.OrderId == lsr.OrderId); } if (lsr.TimestampFrom.ToString() != "1/1/0001 12:00:00 AM" && lsr.TimestampTo.ToString() != "1/1/0001 12:00:00 AM") { logQ = logQ.Where(l => l.Timestamp.Date >= lsr.TimestampFrom.Date && l.Timestamp.Date <= lsr.TimestampTo.Date); ldc.DateTimeFrom = lsr.TimestampFrom.ToString("yyyy-0M-0d"); ldc.DateTimeTo = lsr.TimestampTo.ToString("yyyy-0M-0d"); } logs = logQ.ToList(); } else { logs = new List <Log>(); } /*LogDataContainer ldc = new LogDataContainer() * { * Logs = logs, * DateTimeFrom = lsr.TimestampFrom.ToString() != "1/1/0001 12:00:00 AM" ? lsr.TimestampFrom : null, * DateTimeTo = lsr.TimestampTo.ToString() != "1/1/0001 12:00:00 AM" ? lsr.TimestampTo : null * };*/ ldc.Logs = logs; return(View(ldc)); }
public IActionResult Index() { LogSearchRequest lsr = null; IEnumerable <Log> logs; LogDataContainer ldc = new LogDataContainer(); if (TempData["logs"] != null) { lsr = JsonConvert.DeserializeObject <LogSearchRequest>(TempData["logs"].ToString()); IQueryable <Log> logQ = _ctx.Logs; if (lsr.OrderId > 0) { logQ = logQ.Where(l => l.OrderId == lsr.OrderId); } if (lsr.TimestampFrom.ToString() != "1/1/0001 12:00:00 AM" && lsr.TimestampTo.ToString() != "1/1/0001 12:00:00 AM") { logQ = logQ.Where(l => l.Timestamp.Date >= lsr.TimestampFrom.Date && l.Timestamp.Date <= lsr.TimestampTo.Date); ldc.DateTimeFrom = lsr.TimestampFrom.ToString("yyyy-0M-0d"); ldc.DateTimeTo = lsr.TimestampTo.ToString("yyyy-0M-0d"); } logs = logQ.ToList(); } else { logs = new List <Log>(); } ldc.Logs = logs; return(View(ldc)); }
public IActionResult Search(LogSearchRequest lsr) { TempData["logs"] = JsonConvert.SerializeObject(lsr); return(RedirectToAction("Index", "Log")); }