Example #1
0
        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);
        }
Example #4
0
        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;
        }
Example #5
0
 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)
 {
 }