/// <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);
        }
Ejemplo n.º 2
0
        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;
            }
        }
Ejemplo n.º 3
0
        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
            });
        }
Ejemplo n.º 4
0
        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"));
        }
Ejemplo n.º 5
0
        /// <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));
        }
Ejemplo n.º 6
0
        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));
        }
Ejemplo n.º 7
0
        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));
        }
Ejemplo n.º 8
0
        public IActionResult Search(LogSearchRequest lsr)
        {
            TempData["logs"] = JsonConvert.SerializeObject(lsr);

            return(RedirectToAction("Index", "Log"));
        }