private ArchivedVenueVersion Archive(IDatabaseContext <Venue> ctx, Venue venue, VenueDiff diff, EntryEditEvent reason, string notes) { var agentLoginData = ctx.OfType <User>().CreateAgentLoginData(_permissionContext); var archived = ArchivedVenueVersion.Create(venue, diff, agentLoginData, reason, notes); ctx.Save(archived); return(archived); }
private static void DoIfExists(ArchivedVenueVersion version, VenueEditableFields field, XmlCache <ArchivedVenueContract> xmlCache, Action <ArchivedVenueContract> func) { var versionWithField = version.GetLatestVersionWithField(field); if (versionWithField?.Data != null) { var data = xmlCache.Deserialize(versionWithField.Version, versionWithField.Data); func(data); } }
public static ArchivedVenueContract GetAllProperties(ArchivedVenueVersion version) { var data = new ArchivedVenueContract(); var xmlCache = new XmlCache <ArchivedVenueContract>(); var thisVersion = version.Data != null?xmlCache.Deserialize(version.Version, version.Data) : new ArchivedVenueContract(); data.Address = thisVersion.Address; data.AddressCountryCode = thisVersion.AddressCountryCode; data.Coordinates = thisVersion.Coordinates; data.Description = thisVersion.Description; data.Id = thisVersion.Id; data.TranslatedName = thisVersion.TranslatedName; DoIfExists(version, VenueEditableFields.Names, xmlCache, v => data.Names = v.Names); DoIfExists(version, VenueEditableFields.WebLinks, xmlCache, v => data.WebLinks = v.WebLinks); return(data); }
public ArchivedVenueVersionDetailsContract(ArchivedVenueVersion archived, ArchivedVenueVersion comparedVersion, IUserPermissionContext permissionContext) { ParamIs.NotNull(() => archived); ArchivedVersion = new ArchivedVenueVersionContract(archived); ComparedVersion = comparedVersion != null ? new ArchivedVenueVersionContract(comparedVersion) : null; Venue = new VenueContract(archived.Entry, permissionContext.LanguagePreference); Name = Venue.Name; ComparableVersions = archived.Entry.ArchivedVersionsManager .GetPreviousVersions(archived, permissionContext) .Select(a => ArchivedObjectVersionWithFieldsContract.Create(a, a.Diff.ChangedFields.Value, a.CommonEditEvent)) .ToArray(); Versions = ComparedVenueContract.Create(archived, comparedVersion); ComparedVersionId = Versions.SecondId; }
protected void AddEntryEditedEntry(IDatabaseContext <ActivityEntry> ctx, Venue entry, EntryEditEvent editEvent, ArchivedVenueVersion archivedVersion) { var user = ctx.OfType <User>().GetLoggedUser(PermissionContext); var activityEntry = new VenueActivityEntry(entry, editEvent, user, archivedVersion); AddActivityfeedEntry(ctx, activityEntry); }
public ArchivedVenueVersionContract(ArchivedVenueVersion archivedVersion) : base(archivedVersion, archivedVersion.Diff.ChangedFields.Value, archivedVersion.CommonEditEvent) { }
public ArchivedVenueVersionContract(ArchivedVenueVersion archivedVersion, IUserIconFactory userIconFactory) : base(archivedVersion, userIconFactory, archivedVersion.Diff.ChangedFields.Value, archivedVersion.CommonEditEvent) { }
public static ComparedVenueContract Create(ArchivedVenueVersion firstData, ArchivedVenueVersion secondData) { return(new ComparedVenueContract(Create(firstData, secondData, ArchivedVenueContract.GetAllProperties, d => d.Id))); }