public override void Generate() { foreach (var table in GetList()) { var template = new AuditEntityExtenderTemplate(_model, table); var fullFileName = RELATIVE_OUTPUT_LOCATION + template.FileName; var eventArgs = new ProjectItemGeneratedEventArgs(fullFileName, template.FileContent, ProjectName, this, false); OnProjectItemGenerated(this, eventArgs); } //Process deleted items foreach (var name in _model.RemovedTables) { var fullFileName = RELATIVE_OUTPUT_LOCATION + string.Format("{0}Audit.cs", name); var eventArgs = new ProjectItemDeletedEventArgs(fullFileName, ProjectName, this); OnProjectItemDeleted(this, eventArgs); } //Process tables that are not longer audited foreach (var name in _model.Database.Tables.Where(x => !x.AllowAuditTracking)) { var fullFileName = RELATIVE_OUTPUT_LOCATION + string.Format("{0}Audit.cs", name); var eventArgs = new ProjectItemDeletedEventArgs(fullFileName, ProjectName, this); OnProjectItemDeleted(this, eventArgs); } var gcEventArgs = new ProjectItemGenerationCompleteEventArgs(this); OnGenerationComplete(this, gcEventArgs); }