Пример #1
0
        public IActionResult Audit()
        {
            var auditDates = new AuditDateViewModel();

            auditDates.From = DateTime.Now;
            auditDates.To   = DateTime.Now;
            return(View(auditDates));
        }
Пример #2
0
        public IActionResult Changes(AuditDateViewModel auditDates)
        {
            if (auditDates.From == null)
            {
                auditDates.From = DateTime.Now;
            }

            if (auditDates.To == null)
            {
                auditDates.To = DateTime.Now;
            }

            auditDates.To = auditDates.To.AddHours(23);
            auditDates.To = auditDates.To.AddMinutes(59);
            auditDates.To = auditDates.To.AddSeconds(59);


            var audit   = _context.Audits.Where(n => n.DateTime >= auditDates.From && n.DateTime <= auditDates.To && n.TableName != "Role" && n.TableName != "Użytkownicy").ToList();
            var changes = new List <AuditViewModel>();

            int id = 0;

            foreach (var item in audit)
            {
                if (item.OldValues == null && item.NewValues == null)
                {
                }
                else
                {
                    string whatChanged = ChangesComparisonService.Changes(item.OldValues, item.NewValues);

                    id++;
                    changes.Add(new AuditViewModel {
                        Id = id, Changes = whatChanged, Date = item.DateTime, Table = item.TableName, ChangedBy = item.ChangedBy
                    });
                }
            }

            if (auditDates.ExportToFile == false)
            {
                return(View(changes));
            }
            else
            {
                #region excel

                using (var workbook = new XLWorkbook())
                {
                    var worksheet  = workbook.Worksheets.Add("Raport zmian");
                    var currentRow = 1;
                    worksheet.Cell(currentRow, 1).Value = "Lp";
                    worksheet.Cell(currentRow, 2).Value = "Data";
                    worksheet.Cell(currentRow, 3).Value = "Tabela";
                    worksheet.Cell(currentRow, 4).Value = "Użytkownik";
                    worksheet.Cell(currentRow, 5).Value = "Co zmienione";

                    foreach (var change in changes)
                    {
                        currentRow++;

                        worksheet.Cell(currentRow, 1).Value = currentRow - 1;
                        worksheet.Cell(currentRow, 2).Value = change.Date;
                        worksheet.Cell(currentRow, 3).Value = change.Table;
                        worksheet.Cell(currentRow, 4).Value = change.ChangedBy;
                        worksheet.Cell(currentRow, 5).Value = change.Changes;
                    }

                    using (var stream = new MemoryStream())
                    {
                        workbook.SaveAs(stream);
                        var content = stream.ToArray();

                        return(File(content, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
                                    "Raport.xlsx"));
                    }
                }

                #endregion

                return(RedirectToAction("Audit"));
            }
        }