public void Archive(IRepositoryContext <SongList> ctx, SongList songList, SongListDiff diff, EntryEditEvent reason) { var agentLoginData = ctx.CreateAgentLoginData(PermissionContext); var archived = songList.CreateArchivedVersion(diff, agentLoginData, reason); ctx.OfType <ArchivedSongListVersion>().Save(archived); }