private ArchivedReleaseEventSeriesVersion Archive(IDatabaseContext <ReleaseEvent> ctx, ReleaseEventSeries releaseEvent, ReleaseEventSeriesDiff diff, EntryEditEvent reason, string notes) { var agentLoginData = ctx.OfType <User>().CreateAgentLoginData(permissionContext); var archived = ArchivedReleaseEventSeriesVersion.Create(releaseEvent, diff, agentLoginData, reason, notes); ctx.Save(archived); return(archived); }
private static void DoIfExists(ArchivedReleaseEventSeriesVersion version, ReleaseEventSeriesEditableFields field, XmlCache <ArchivedEventSeriesContract> xmlCache, Action <ArchivedEventSeriesContract> func) { var versionWithField = version.GetLatestVersionWithField(field); if (versionWithField?.Data != null) { var data = xmlCache.Deserialize(versionWithField.Version, versionWithField.Data); func(data); } }
public static ArchivedEventSeriesContract GetAllProperties(ArchivedReleaseEventSeriesVersion version) { var data = new ArchivedEventSeriesContract(); var xmlCache = new XmlCache <ArchivedEventSeriesContract>(); var thisVersion = version.Data != null?xmlCache.Deserialize(version.Version, version.Data) : new ArchivedEventSeriesContract(); data.Category = thisVersion.Category; data.Description = thisVersion.Description; data.Id = thisVersion.Id; data.MainPictureMime = thisVersion.MainPictureMime; data.TranslatedName = thisVersion.TranslatedName; DoIfExists(version, ReleaseEventSeriesEditableFields.Names, xmlCache, v => data.Names = v.Names); DoIfExists(version, ReleaseEventSeriesEditableFields.WebLinks, xmlCache, v => data.WebLinks = v.WebLinks); return(data); }
public ArchivedEventSeriesVersionDetailsContract(ArchivedReleaseEventSeriesVersion archived, ArchivedReleaseEventSeriesVersion comparedVersion, IUserPermissionContext permissionContext) { ParamIs.NotNull(() => archived); ArchivedVersion = new ArchivedEventSeriesVersionContract(archived); ComparedVersion = comparedVersion != null ? new ArchivedEventSeriesVersionContract(comparedVersion) : null; ReleaseEventSeries = new ReleaseEventSeriesContract(archived.Entry, permissionContext.LanguagePreference); Name = ReleaseEventSeries.Name; ComparableVersions = archived.Entry.ArchivedVersionsManager .GetPreviousVersions(archived, permissionContext) .Select(a => ArchivedObjectVersionWithFieldsContract.Create(a, a.Diff.ChangedFields.Value, a.CommonEditEvent)) .ToArray(); Versions = ComparedEventSeriesContract.Create(archived, comparedVersion); ComparedVersionId = Versions.SecondId; }
public ArchivedEventSeriesVersionContract(ArchivedReleaseEventSeriesVersion archivedVersion) : base(archivedVersion, archivedVersion.Diff.ChangedFields.Value, archivedVersion.CommonEditEvent) { }
public static ComparedEventSeriesContract Create(ArchivedReleaseEventSeriesVersion firstData, ArchivedReleaseEventSeriesVersion secondData) { return(new ComparedEventSeriesContract(Create(firstData, secondData, ArchivedEventSeriesContract.GetAllProperties, d => d.Id))); }
public ArchivedEventSeriesVersionContract(ArchivedReleaseEventSeriesVersion archivedVersion, IUserIconFactory userIconFactory) : base(archivedVersion, userIconFactory, archivedVersion.Diff.ChangedFields.Value, archivedVersion.CommonEditEvent) { }