Ejemplo n.º 1
0
        public static ArchivedArtistContract GetAllProperties(ArchivedArtistVersion version)
        {
            var data        = new ArchivedArtistContract();
            var xmlCache    = new XmlCache <ArchivedArtistContract>();
            var thisVersion = xmlCache.Deserialize(version.Version, version.Data);

            data.ArtistType      = thisVersion.ArtistType;
            data.BaseVoicebank   = thisVersion.BaseVoicebank;
            data.Groups          = thisVersion.Groups;
            data.Id              = thisVersion.Id;
            data.MainPictureMime = thisVersion.MainPictureMime;
            data.Members         = thisVersion.Members;
            data.ReleaseDate     = thisVersion.ReleaseDate;
            data.TranslatedName  = thisVersion.TranslatedName;

            DoIfExists(version, ArtistEditableFields.Description, xmlCache, v =>
            {
                data.Description    = v.Description;
                data.DescriptionEng = v.DescriptionEng;
            });
            DoIfExists(version, ArtistEditableFields.Names, xmlCache, v => data.Names       = v.Names);
            DoIfExists(version, ArtistEditableFields.Pictures, xmlCache, v => data.Pictures = v.Pictures);
            DoIfExists(version, ArtistEditableFields.WebLinks, xmlCache, v => data.WebLinks = v.WebLinks);

            return(data);
        }
Ejemplo n.º 2
0
        public void SetUp()
        {
            var anotherUser = CreateEntry.User(id: 2);

            artist = CreateEntry.Artist(ArtistType.Producer);
            ArchivedArtistVersion.Create(artist, new ArtistDiff(), new AgentLoginData(anotherUser), ArtistArchiveReason.Created, string.Empty);
            user = CreateEntry.User(id: 1);
        }
Ejemplo n.º 3
0
        public void Archive(ISession session, Artist artist, ArtistDiff diff, ArtistArchiveReason reason, string notes = "")
        {
            SysLog("Archiving " + artist);

            var agentLoginData = SessionHelper.CreateAgentLoginData(session, PermissionContext);
            var archived       = ArchivedArtistVersion.Create(artist, diff, agentLoginData, reason, notes);

            session.Save(archived);
        }
Ejemplo n.º 4
0
        public void Archive(IRepositoryContext <Artist> ctx, Artist artist, ArtistDiff diff, ArtistArchiveReason reason, string notes = "")
        {
            ctx.AuditLogger.SysLog("Archiving " + artist);

            var agentLoginData = ctx.CreateAgentLoginData(PermissionContext);
            var archived       = ArchivedArtistVersion.Create(artist, diff, agentLoginData, reason, notes);

            ctx.Save(archived);
        }
Ejemplo n.º 5
0
        public void CreateReport_OwnershipClaim()
        {
            var editor = _user2;

            _repository.Save(ArchivedArtistVersion.Create(_artist, new ArtistDiff(), new AgentLoginData(editor), ArtistArchiveReason.PropertiesUpdated, string.Empty));
            var(created, _) = CallCreateReport(ArtistReportType.OwnershipClaim);

            created.Should().BeTrue("Report was created");

            _repository.List <UserMessage>().Should().BeEmpty("No notification created");
        }
Ejemplo n.º 6
0
        public async Task <ArchivedArtistVersion> ArchiveAsync(IDatabaseContext <Artist> ctx, Artist artist, ArtistDiff diff, ArtistArchiveReason reason, string notes = "")
        {
            ctx.AuditLogger.SysLog("Archiving " + artist);

            var agentLoginData = await ctx.CreateAgentLoginDataAsync(PermissionContext);

            var archived = ArchivedArtistVersion.Create(artist, diff, agentLoginData, reason, notes);
            await ctx.SaveAsync(archived);

            return(archived);
        }
Ejemplo n.º 7
0
        private static void DoIfExists(ArchivedArtistVersion version, ArtistEditableFields field,
                                       XmlCache <ArchivedArtistContract> xmlCache, Action <ArchivedArtistContract> func)
        {
            var versionWithField = version.GetLatestVersionWithField(field);

            if (versionWithField != null && versionWithField.Data != null)
            {
                var data = xmlCache.Deserialize(versionWithField.Version, versionWithField.Data);
                func(data);
            }
        }
Ejemplo n.º 8
0
		private static void DoIfExists(ArchivedArtistVersion version, ArtistEditableFields field, 
			XmlCache<ArchivedArtistContract> xmlCache, Action<ArchivedArtistContract> func) {

			var versionWithField = version.GetLatestVersionWithField(field);

			if (versionWithField != null && versionWithField.Data != null) {
				var data = xmlCache.Deserialize(versionWithField.Version, versionWithField.Data);
				func(data);
			}

		}
Ejemplo n.º 9
0
        public void SetUp()
        {
            var anotherUser = CreateEntry.User(id: 2);

            _artist = CreateEntry.Artist(ArtistType.Producer);
            ArchivedArtistVersion.Create(_artist, new ArtistDiff(), new AgentLoginData(anotherUser), ArtistArchiveReason.Created, string.Empty);
            _user = CreateEntry.User(id: 1);

            _verifiedArtist = CreateEntry.Artist(ArtistType.Producer);
            _verifiedUser   = CreateEntry.User(id: 3);

            _verifiedArtist.Status = EntryStatus.Approved;
            _verifiedUser.GroupId  = UserGroupId.Regular;
            _verifiedUser.AddOwnedArtist(_verifiedArtist);
        }
		public static EntryForPictureDisplayContract Create(ArchivedArtistVersion archivedVersion, 
			ContentLanguagePreference languagePreference) {

			ParamIs.NotNull(() => archivedVersion);

			var name = archivedVersion.Artist.TranslatedName[languagePreference];
			var versionWithPic = archivedVersion.GetLatestVersionWithField(ArtistEditableFields.Picture);
			PictureContract pic = null;

			if (versionWithPic != null && versionWithPic.Picture != null)
				pic = new PictureContract(versionWithPic.Picture, versionWithPic.PictureMime, Size.Empty);

			return new EntryForPictureDisplayContract(EntryType.Artist, archivedVersion.Artist.Id, name, archivedVersion.Version, pic);

		}
Ejemplo n.º 11
0
        public static EntryForPictureDisplayContract Create(ArchivedArtistVersion archivedVersion,
                                                            ContentLanguagePreference languagePreference)
        {
            ParamIs.NotNull(() => archivedVersion);

            var             name           = archivedVersion.Artist.TranslatedName[languagePreference];
            var             versionWithPic = archivedVersion.GetLatestVersionWithField(ArtistEditableFields.Picture);
            PictureContract pic            = null;

            if (versionWithPic != null && versionWithPic.Picture != null)
            {
                pic = new PictureContract(versionWithPic.Picture, versionWithPic.PictureMime);
            }

            return(new EntryForPictureDisplayContract(EntryType.Artist, archivedVersion.Artist.Id, name, archivedVersion.Version, pic));
        }
        public ArchivedArtistVersionDetailsContract(ArchivedArtistVersion archived, ArchivedArtistVersion comparedVersion,
                                                    ContentLanguagePreference languagePreference)
        {
            ArchivedVersion   = new ArchivedArtistVersionContract(archived);
            Artist            = new ArtistContract(archived.Artist, languagePreference);
            ComparedVersion   = comparedVersion != null ? new ArchivedArtistVersionContract(comparedVersion) : null;
            ComparedVersionId = comparedVersion != null ? comparedVersion.Id : 0;
            Name = Artist.Name;

            ComparableVersions = archived.Artist.ArchivedVersionsManager.Versions
                                 .Where(v => v != archived)
                                 .Select(a => new ArchivedObjectVersionContract(a))
                                 .ToArray();

            Versions = ComparedArtistsContract.Create(archived, comparedVersion);

            ComparedVersionId = Versions.SecondId;
        }
Ejemplo n.º 13
0
        public void CreateReport()
        {
            var editor = _user2;

            _repository.Save(ArchivedArtistVersion.Create(_artist, new ArtistDiff(), new AgentLoginData(editor), ArtistArchiveReason.PropertiesUpdated, string.Empty));
            var(created, report) = CallCreateReport(ArtistReportType.InvalidInfo);

            created.Should().BeTrue("Report was created");
            report.EntryBase.Id.Should().Be(_artist.Id);
            report.User.Should().Be(_user);
            report.ReportType.Should().Be(ArtistReportType.InvalidInfo);

            var notification = _repository.List <UserMessage>().FirstOrDefault();

            notification.Should().NotBeNull("notification was created");
            notification.Receiver.Should().Be(editor, "notification receiver is editor");
            notification.Subject.Should().Be(string.Format(EntryReportStrings.EntryVersionReportTitle, _artist.DefaultName));
        }
        public ArchivedArtistVersionDetailsContract(ArchivedArtistVersion archived, ArchivedArtistVersion comparedVersion,
            ContentLanguagePreference languagePreference)
        {
            ArchivedVersion = new ArchivedArtistVersionContract(archived);
            Artist = new ArtistContract(archived.Artist, languagePreference);
            ComparedVersion = comparedVersion != null ? new ArchivedArtistVersionContract(comparedVersion) : null;
            ComparedVersionId = comparedVersion != null ? comparedVersion.Id : 0;
            Name = Artist.Name;

            ComparableVersions = archived.Artist.ArchivedVersionsManager.Versions
                .Where(v => v != archived)
                .Select(a => new ArchivedObjectVersionContract(a))
                .ToArray();

            Versions = ComparedArtistsContract.Create(archived, comparedVersion);

            ComparedVersionId = Versions.SecondId;
        }
        public ArchivedArtistVersionDetailsContract(ArchivedArtistVersion archived, ArchivedArtistVersion comparedVersion,
                                                    IUserPermissionContext permissionContext)
        {
            ParamIs.NotNull(() => archived);

            ArchivedVersion   = new ArchivedArtistVersionContract(archived);
            Artist            = new ArtistContract(archived.Artist, permissionContext.LanguagePreference);
            ComparedVersion   = comparedVersion != null ? new ArchivedArtistVersionContract(comparedVersion) : null;
            ComparedVersionId = comparedVersion != null ? comparedVersion.Id : 0;
            Name = Artist.Name;

            ComparableVersions = archived.Artist.ArchivedVersionsManager
                                 .GetPreviousVersions(archived, permissionContext)
                                 .Select(a => ArchivedObjectVersionWithFieldsContract.Create(a, a.Diff.ChangedFields.Value, a.Reason))
                                 .ToArray();

            Versions = ComparedArtistsContract.Create(archived, comparedVersion);

            ComparedVersionId = Versions.SecondId;
        }
Ejemplo n.º 16
0
		public static ArchivedArtistContract GetAllProperties(ArchivedArtistVersion version) {

			var data = new ArchivedArtistContract();
			var xmlCache = new XmlCache<ArchivedArtistContract>();
			var thisVersion = xmlCache.Deserialize(version.Version, version.Data);

			data.ArtistType = thisVersion.ArtistType;
			data.BaseVoicebank = thisVersion.BaseVoicebank;
			data.Groups = thisVersion.Groups;
			data.Id = thisVersion.Id;
			data.MainPictureMime = thisVersion.MainPictureMime;
			data.Members = thisVersion.Members;
			data.TranslatedName = thisVersion.TranslatedName;

			DoIfExists(version, ArtistEditableFields.Albums, xmlCache, v => data.Albums = v.Albums);
			DoIfExists(version, ArtistEditableFields.Description, xmlCache, v => data.Description = v.Description);
			DoIfExists(version, ArtistEditableFields.Names, xmlCache, v => data.Names = v.Names);
			DoIfExists(version, ArtistEditableFields.Pictures, xmlCache, v => data.Pictures = v.Pictures);
			DoIfExists(version, ArtistEditableFields.WebLinks, xmlCache, v => data.WebLinks = v.WebLinks);

			return data;

		}
Ejemplo n.º 17
0
        protected void AddEntryEditedEntry(IDatabaseContext <ActivityEntry> ctx, Artist entry, EntryEditEvent editEvent, ArchivedArtistVersion archivedVersion)
        {
            var user          = ctx.OfType <User>().GetLoggedUser(PermissionContext);
            var activityEntry = new ArtistActivityEntry(entry, editEvent, user, archivedVersion);

            AddActivityfeedEntry(ctx, activityEntry);
        }
 public ArchivedArtistVersionContract(ArchivedArtistVersion archivedVersion)
     : base(archivedVersion)
 {
     ChangedFields = (archivedVersion.Diff != null ? archivedVersion.Diff.ChangedFields.Value : ArtistEditableFields.Nothing);
     Reason        = archivedVersion.Reason;
 }
 public static ComparedArtistsContract Create(ArchivedArtistVersion firstData, ArchivedArtistVersion secondData)
 {
     return(new ComparedArtistsContract(Create(firstData, secondData, ArchivedArtistContract.GetAllProperties, d => d.Id)));
 }
Ejemplo n.º 20
0
        protected async Task AddEntryEditedEntryAsync(IDatabaseContext <ActivityEntry> ctx, Artist entry, EntryEditEvent editEvent, ArchivedArtistVersion archivedVersion)
        {
            var user = await ctx.OfType <User>().GetLoggedUserAsync(PermissionContext);

            var activityEntry = new ArtistActivityEntry(entry, editEvent, user, archivedVersion);

            await AddActivityfeedEntryAsync(ctx, activityEntry);
        }
Ejemplo n.º 21
0
        protected void AddEntryEditedEntry(ISession session, Artist entry, EntryEditEvent editEvent, ArchivedArtistVersion archivedVersion)
        {
            var user          = GetLoggedUser(session);
            var activityEntry = new ArtistActivityEntry(entry, editEvent, user, archivedVersion);

            AddActivityfeedEntry(session, activityEntry);
        }
 public ArchivedArtistVersionContract(ArchivedArtistVersion archivedVersion)
     : base(archivedVersion)
 {
     ChangedFields = (archivedVersion.Diff != null ? archivedVersion.Diff.ChangedFields : ArtistEditableFields.Nothing);
     Reason = archivedVersion.Reason;
 }