// GET Report/ExportAudit
        public FileContentResult ExportAudit()
        {
            string displayName;
            var    csvExport = new CSVExporter();

            foreach (var auditRecord in AuditRecordProvider.GetAll())
            {
                csvExport.AddRow();

                foreach (var prop in auditRecord.GetType().GetProperties())
                {
                    switch (prop.Name)
                    {
                    case "EntityName":
                        displayName = "Entity";
                        break;

                    case "PrimaryKeyValue":
                        displayName = "ID";
                        break;

                    case "PropertyName":
                        displayName = "Property";
                        break;

                    case "OldValue":
                        displayName = "Old Value";
                        break;

                    case "NewValue":
                        displayName = "New Value";
                        break;

                    case "DateChanged":
                        displayName = "Date Changed";
                        break;

                    case "UserName":
                        displayName = "Changed By";
                        break;

                    default:
                        displayName = prop.Name;
                        break;
                    }

                    csvExport[displayName] = prop.GetValue(auditRecord, null);
                }
            }

            return(File(new UTF8Encoding().GetBytes(csvExport.Export()), "text/csv", "AuditRecords.csv"));
        }
        // GET: Report/Audit
        public ActionResult Audit()
        {
            var model = AuditRecordProvider.GetAll();

            return(View(model));
        }