public IActionResult Audit() { var auditDates = new AuditDateViewModel(); auditDates.From = DateTime.Now; auditDates.To = DateTime.Now; return(View(auditDates)); }
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")); } }